Le terme « Java EE » signifie Java Enterprise Edition, et était anciennement raccourci en J2EE. La plate-forme Java EE est construite sur le langage Java et sur la plate-forme Java SE (Java Standard Edition) contenant un grand nombre de bibliothèques en plus de la bibliothèque d'origine. L'objectif majeur de Java EE est de faciliter le développement d'applications web robustes et distribuées, déployées et exécutées sur un serveur d'applications (Tomcat).
Le Java Enterprise Edition a été créé pour le développement d'applications d'entreprises. Ses spécifications ont été pensées afin, notamment, de faciliter le travail en équipe sur un même projet : l'application est découpée en couches.
La communication entre le client et le serveur s'effectue au travers du protocole HTTP (voir la figure ci-dessus) :
Ainsi :
Mais un serveur doit être capable d'effectuer d'autres tâches, notamment exécuter des applications. Or un simple serveur HTTP n'en est pas capable. Il faut donc un autre composant qui va se charger d'exécuter du code en plus de faire le travail du serveur HTTP ; c'est le serveur d'applications. Nous utiliserons ici Tomcat de la fondation Apache. Un tel serveur inclut un serveur HTTP, et permet l'exécution de traitements dans des langages spécifiques (ici Java).
Le serveur d'applications aura pour rôle de :
Il existe plusieurs serveurs d'application sur le marché :
L'architecture JEE structure l'application en couches distinctes.
Dans le modèle, on trouve à la fois les données et les traitements à appliquer à ces données. Ce bloc contient donc des objets Java d'une part, qui peuvent contenir des attributs (données) et des méthodes (traitements) qui leur sont propres, et un système capable de stocker des données d'autre part.
La couche DAO : Cette couche applicative permet d'accéder à la base de données et d'exécuter des instructions sql.
Une page JSP est une page Html dans laquelle sont insérés des morceaux de code java. Elle est exécutée côté serveur.
La servlet permet de récupérer les informations stockées dans la requête http. Elle utilise la couche Modèle et DAO pour effectuer des traitements et récupérer des données de la base.
Cet objet n'agit jamais directement sur les données, il faut le voir comme un simple aiguilleur : il intercepte une requête issue d'un client, appelle éventuellement des traitements effectués par le modèle, et ordonne en retour à la vue d'afficher le résultat au client.