Important: While this answer is still valid, you may also want to check the following:
? List of technologies of Java EE 8;
? List of technologies of Jakarta EE 8;
? List of technologies of Jakarta EE 9.
The Java EE 7 technologies
Below you will find a list of specifications for the Java EE 7 technologies. For more details, check the JSR pages:
Java EE Platform
- JSR 342: Java Platform, Enterprise Edition 7 (Java EE 7)
Web Application Technologies
- JSR 356: Java API for WebSocket
- JSR 353: Java API for JSON Processing
- JSR 340: Java Servlet 3.1
- JSR 344: JavaServer Faces 2.2
- JSR 341: Expression Language 3.0
- JSR 245: JavaServer Pages 2.3
- JSR 52: Standard Tag Library for JavaServer Pages (JSTL) 1.2
Enterprise Application Technologies
- JSR 352: Batch Applications for the Java Platform
- JSR 236: Concurrency Utilities for Java EE 1.0
- JSR 346: Contexts and Dependency Injection for Java 1.1
- JSR 330: Dependency Injection for Java 1.0
- JSR 349: Bean Validation 1.1
- JSR 345: Enterprise JavaBeans 3.2
- JSR 318: Interceptors 1.2
- JSR 322: Java EE Connector Architecture 1.7
- JSR 338: Java Persistence 2.1
- JSR 250: Common Annotations for the Java Platform 1.2
- JSR 343: Java Message Service API 2.0
- JSR 907: Java Transaction API (JTA) 1.2
- JSR 919: JavaMail 1.5
Web Services Technologies
- JSR 339: Java API for RESTful Web Services (JAX-RS) 2.0
- JSR 109: Implementing Enterprise Web Services 1.3
- JSR 224: Java API for XML-Based Web Services (JAX-WS) 2.2
- JSR 181: Web Services Metadata for the Java Platform
- JSR 101: Java API for XML-Based RPC (JAX-RPC) 1.1
- JSR 67: Java APIs for XML Messaging 1.3
- JSR 93: Java API for XML Registries (JAXR) 1.0
Management and Security Technologies
- JSR 196: Java Authentication Service Provider Interface for Containers 1.1
- JSR 115: Java Authorization Contract for Containers 1.5
- JSR 88: Java EE Application Deployment 1.2 (Optional)
- JSR 77: J2EE Management 1.1
- JSR 45: Debugging Support for Other Languages 1.0
Java EE-related Specs in Java SE
- JSR 222: Java Architecture for XML Binding (JAXB) 2.2
- JSR 206: Java API for XML Processing (JAXP) 1.3
- JSR 221: Java Database Connectivity 4.0
- JSR 3: Java Management Extensions (JMX) 2.0
- JSR 925: JavaBeans Activation Framework (JAF) 1.1
- JSR 173: Streaming API for XML (StAX) 1.0
For more details, refer to this page.
The Java EE stack
As mentioned by Arun Gupta in his book entitled Java EE 7 Essentials, the different components work together to provide an integrated stack, as shown below:
So, we have the following:
Different components can be logically divided into three tiers: backend tier, middle tier, and web tier. This is only a logical representation, and the components can be restricted to a different tier based upon the application's requirements.
JPA and JMS provide the basic services such as database access and messaging. JCA allows connection to legacy systems. Batch is used for performing noninteractive, bulk-oriented tasks.
Managed Beans and EJB provide a simplified programming model using POJOs to use the basic services.
CDI, Interceptors, and Common Annotations provide concepts that are applicable to a wide variety of components, such as type-safe dependency injection, addressing cross-cutting concerns using interceptors, and a common set of annotations. Concurrency Utilities can be used to run tasks in a managed thread. JTA enables Transactional Interceptors that can be applied to any POJO.
CDI Extensions allow you to extend the platform beyond its existing capabilities in a standard way.
Web Services using JAX-RS and JAX-WS, JSF, JSP, and EL define the programming model for web applications. Web Fragments allow automatic registration of third-party web frameworks in a very natural way. JSON provides a way to parse and generate JSON structures in the web tier. WebSocket allows the setup of a bidirectional, full-duplex communication channel over a single TCP connection.
Bean Validation provides a standard means to declare constraints and validate them across different technologies.
A briefing of each technology
To learn more about the main technologies listed above, check the Java EE 7 tutorial. And a good overview of the main technologies can be found in this page. Just quoting it here:
Enterprise JavaBeans Technology
An Enterprise JavaBeans (EJB) component, or enterprise bean, is a body
of code that has fields and methods to implement modules of business
logic. You can think of an enterprise bean as a building block that
can be used alone or with other enterprise beans to execute business
logic on the Java EE server.
Enterprise beans are either session beans or message-driven beans.
A session bean represents a transient conversation with a client. When the client finishes executing, the session bean and its data are
gone.
A message-driven bean combines features of a session bean and a message listener, allowing a business component to receive messages
asynchronously. Commonly, these are Java Message Service (JMS)
messages.
In the Java EE 7 platform, new enterprise bean features include the
following:
The Java EE 7 platform requires Enterprise JavaBeans 3.2 and
Interceptors 1.2. The Interceptors specification is part of the EJB
specification.
Java Servlet Technology
Java Servlet technology lets you define HTTP-specific servlet classes.
A servlet class extends the capabilities of servers that host
applications accessed by way of a request-response programming model.
Although servlets can respond to any type of request, they are
commonly used to extend the applications hosted by web servers.
In the Java EE 7 platform, new Java Servlet technology features
include the following:
Nonblocking I/O
HTTP protocol upgrade
The Java EE 7 platform requires Servlet 3.1.
JavaServer Faces Technology
JavaServer Faces technology is a user interface framework for building
web applications. The main components of JavaServer Faces technology
are as follows:
A GUI component framework.
A flexible model for rendering components in different kinds of HTML or different markup languages and technologies. A Renderer
object
generates the markup to render the component and converts the data
stored in a model object to types that can be represented in a view.
A standard RenderKit
for generating HTML 4.01 markup.
The following features support the GUI components:
Input validation
Event handling
Data conversion between model objects and components
Managed model object creation
Page navigation configuration
Expression Language (EL)
All this functionality is available using standard Java APIs and
XML-based configuration files.
In the Java EE 7 platform, new features of JavaServer Faces technology
include the following:
The J