give me the definition for this Hibernate,spring,structs,servlets,ejb.jms...
Hibernate is an object-relational mapping (ORM) library for the Java language, providing a framework for mapping an object-oriented domain model to a traditional relational database.It maps the Java classes to the database tables. It also provides the data query and retrieval facilities that significantly reduces the development time.
Spring is a framework for development of Enterprise grade applications. Spring is a light-weight framework for the development of enterprise-ready applications. Spring can be used to configure declarative transaction management, remote access to your logic using RMI or web services, mailing facilities and various options in persisting your data to a database. Spring framework can be used in modular fashion, it allows to use in parts and leave the other components which is not required by the application.
Apache Struts is an open-source web application framework for developing Java EE web applications. It uses and extends the Java Servlet API to encourage developers to adopt a model-view-controller (MVC) architecture.
Servlets are server side components that provide a powerful mechanism for developing server side programs. Servlets provide component-based, platform-independent methods for building Web-based applications.
Enterprise JavaBeans (EJB) is a managed, server-side component architecture for modular construction of enterprise applications.
JMS is an API that provides reliable, asynchronous communication between applications in a distributed computing environment. It allows applications built on the Java 2 Platform, Enterprise Edition (J2EE) to send messages without having the sender or receiver connected to the network.