Java EE refers to Java Enterprise Edition, which is composed of a set of standards, as indicated in the official Oracle page . To see the specifications that Java EE 8 covers, you can visit this site
When a specification is mentioned, it can be translated technically into a set of interfaces that you can use in your application to obtain a particular functionality. Some examples of the specifications that are part of Java EE are: Servlets, JSP, JPA, JSF, JAX-WS, JAX-RS, EJB, CDI, JCache, among others.
The community provides a reference implementation, which is composed of several frameworks that provide an implementation of each specification. For example, the current reference implementation is Glassfish 5 . This implementation is free and your source code can be found at github . In this site indicates the frameworks you use for its implementation, not directly, that can be reviewed in the link from the column RI (reference implementation). For example, Java Persistence API here is implemented with EclipseLink.
It should be noted that application servers implement a specific version of Java EE. For example, Wildfly 11 supports / implements Java EE 7. That is, Wildfly 11 provides implementations for Servlets, JSP, JPA, JSF and the other specifications that make up Java EE 7. It does not mean that you must use the same frameworks / classes of the reference implementation, that is, Glassfish. An example is JPA, which Glassfish implements with EclipseLink (as previously mentioned) while Wildfly uses Hibernate. Behold, there are differences in performance between application servers.
With this base, it should be noted that if you want to use Java EE powers, you must create a project that runs on an application server. For this, you will have to download an application server, to your preference.
Some free application servers:
- Glassfish
- Wildfly
- TomEE
- Payara
Some paid application servers:
- Oracle Weblogic
- IBM Websphere Liberty