Java EE stands for Java Enterprise Edition. Java EE extends the Java SE (which stands for Java Standard Edition). Java EE is a set of technologies and related specifications that are oriented towards the development of large-scale enterprise applications. Java EE is developed in a community driven process. So far the following versions of Java EE have been released:
And Java EE 8 is expected to be released on the first half of 2017.
A key concept of the Java EE is that every Java EE version is comprised by a set of specific technologies. These technologies address specific JSRs (Java Specification Requests). In order for a programmer to use these technologies he needs to download an implementation of the Java EE technology specifications. The Java Community provides a reference implementation for each technology but other Java EE compliant technologies are developed and can also be used. The community provides a set of tests, namely the Java Compatibility Kit (JCK) that can be used by the developers of a JSR implementation to check if it is compliant or not with the JSR. The following table gives an overview of the technologies that comprise Java EE 7 and the related JSR that define the specs.
| Java EE 7 Technology | JSR |
|---|---|
| Java Platform, Enterprise Edition 7 (Java EE 7) | JSR 342 |
| Java API for WebSocket | JSR 356 |
| Java API for JSON Processing | JSR 353 |
| Java Servlet 3.1 | JSR 340 |
| JavaServer Faces 2.2 | JSR 344 |
| Expression Language 3.0 | JSR 341 |
| JavaServer Pages 2.3 | JSR 245 |
| Standard Tag Library for JavaServer Pages (JSTL) 1.2 | JSR 52 |
| Batch Applications for the Java Platform | JSR 352 |
| Concurrency Utilities for Java EE 1.0 | JSR 236 |
| Contexts and Dependency Injection for Java 1.1 | JSR 346 |
| Dependency Injection for Java 1.0 | JSR 330 |
| Bean Validation 1.1 | JSR 349 |
| Enterprise JavaBeans 3.2 | JSR 345 |
| Interceptors 1.2 (Maintenance Release) | JSR 318 |
| Java EE Connector Architecture 1.7 | JSR 322 |
| Java Persistence 2.1 | JSR 338 |
| Common Annotations for the Java Platform 1.2 | JSR 250 |
| Java Message Service API 2.0 | JSR 343 |
| Java Transaction API (JTA) 1.2 | JSR 907 |
| JavaMail 1.5 | JSR 919 |
| Java API for RESTful Web Services (JAX-RS) 2.0 | JSR 339 |
| Implementing Enterprise Web Services 1.3 | JSR 109 |
| Java API for XML-Based Web Services (JAX-WS) 2.2 | JSR 224 |
| Web Services Metadata for the Java Platform | JSR 181 |
| Java API for XML-Based RPC (JAX-RPC) 1.1 (Optional) | JSR 101 |
| Java APIs for XML Messaging 1.3 | JSR 67 |
| Java API for XML Registries (JAXR) 1.0 | JSR 93 |
| Java Authentication Service Provider Interface for Containers 1.1 | JSR 196 |
| Java Authorization Contract for Containers 1.5 | JSR 115 |
| Java EE Application Deployment 1.2 (Optional) | JSR 88 |
| J2EE Management 1.1 | JSR 77 |
| Debugging Support for Other Languages 1.0 | JSR 45 |
| Java Architecture for XML Binding (JAXB) 2.2 | JSR 222 |
| Java API for XML Processing (JAXP) 1.3 | JSR 206 |
| Java Database Connectivity 4.0 | JSR 221 |
| Java Management Extensions (JMX) 2.0 | JSR 003 |
| JavaBeans Activation Framework (JAF) 1.1 | JSR 925 |
| Streaming API for XML (StAX) 1.0 | JSR 173 |