Introduction aux servlets Java

Ce tutoriel est un résumé des technologies des servlets Java. Il est destiné aux apprenants qui veulent apprendre rapidement les concepts les plus importants. Le reste, vous pouvez le trouver dans le tutoriel officiel de Java EE 6.

Pourquoi on utilise les servlets

Les servlets sont utilisées pour créer une application web et pour implémenter les classes Java qui répondent aux requêtes des utilisateurs. Elles peuvent communiquer à travers n'importe quel protocole client-serveur, mais elles sont parfois utilisées avec le protocole HTTP. Un développeur web peut utiliser une servlet pour ajouter un contenu dynamique au serveur web en utilisant la plateforme Java. Le contenu généré est un code HTML, mais peut être aussi un autre comme le XML. Plusieurs servlets constituent une application web.

C'est quoi une Servlet

Les servlets Java sont une partie de Java Entreprise Edition (Java EE). C'était la première technologie pour Java et beaucoup d'autres technologies web avaient arrivées depuis.

Les Servlets Java est un programme qui hérite les capacités de serveur et peuvent répondre à n'importe quel type de requêtes. Cependant, les servlets implémentent les applications sur des serveurs web. Les servlet en Java sont équivalentes aux technologies comme PHP et ASP.NET.

Pour utiliser et exécuter une servlet, vous avez besoin d'exécuter vos applications sur un serveur web et un web container (conteneur de servlet ou conteneur web). Le web container est responsable de la gestion des cycles de vie des servlets. Voici une illustration:


servlet en java à l'intérieur d'un web container

L'API servlet se trouve dans le package javax.servlet. Ce package définit l'interaction entre une servlet et le web container. L'objet servlet reçoit une requête et génère une réponse basée sur cette requête

Les servlets peuvent être générées automatiquement à partir de JavaServer Page (JSP) par le compilateur JavaServer Page. La différence entre les servlets et les JSPs est que les servlets sont intégrées dans le code Java, tandis que les JSPs sont intégrées dans le code HTML.

Un conteneur de servlets peut exécuter plusieurs applications web en même temps, chacune a de multiple servlet qui sont entrains de s'exécuter à l’intérieur. Voici  une illustration:

application web et multiple servlet java à l'intérieur d'un conteneur web

Requête et réponse HTTP

Le navigateur envoie une requête HTTP au serveur web Java. Le serveur web vérifie si cette requête est pour une servlet. Si c'est le cas, le conteneur web va trouver la servlet reliée à cette demande et l'activer en appelant la méthode Servlet.service().

Une fois que la servlet est activée via la méthode service(), elle traite la requête et génère une réponse qui est retournée au navigateur.

Quelques Conteneurs de servlets

Comme c'est décrit, les servlets sont généralement exécutées à l’intérieur d'un serveur web Java. Les serveurs web Java gratuits sont:
  • Tomcat: est un conteneur web open source de la fondation Apache.
  • Jetty: open source de la fondation Eclipse.
  • GlassFish: open source de la fondation Oracle.