Un ou une[1],[2],[3] servlet est une classe Java qui permet de créer dynamiquement des données au sein d'un serveur HTTP. Ces données sont le plus généralement présentées au format HTML, mais elles peuvent également l'être au format XML ou tout autre format destiné aux navigateurs web. Les servlets utilisent l'API Java Servlet (package javax.servlet).

Un ou une servlet s'exécute dynamiquement sur le serveur web et permet l'extension des fonctions de ce dernier, par exemple : l'accès à des bases de données, transactions de commerce en ligne, etc. Un ou une servlet peut être chargé automatiquement lors du démarrage du serveur web ou lors de la première requête du client. Une fois chargés, les servlets restent actifs dans l'attente d'autres requêtes du client.

L'utilisation de servlets se fait par le biais d'un conteneur de servlets (framework) côté serveur. Celui-ci constitue l'environnement d'exécution de le/la servlet et lui permet de persister entre les requêtes des clients. L'API définit les relations entre le conteneur et le/la servlet. Le conteneur reçoit la requête du client, et sélectionne le/la servlet qui aura à la traiter. Le conteneur fournit également tout un ensemble de services standards pour simplifier la gestion des requêtes et des sessions.

Un ou une ou plusieurs servlets constituent les applications web Java, leur principe de fonctionnement (architecture, fonctionnalités, configuration, déploiement) est décrit suivant une spécification officielle, menée par Sun Microsystems et à laquelle toute personne peut contribuer par le biais des Java Specification Requests (Java Community Process). La version actuelle des spécifications servlet est la 4.0.

Conteneurs de servlets

modifier

Il existe plusieurs conteneurs de servlets, dont Apache Tomcat ou encore Jetty. Le serveur d'application JBoss Application Server utilise Apache Tomcat.

Exemple de servlet classique

modifier
import javax.servlet.* ;
import java.io.* ;

public class HelloServlet extends GenericServlet
{
  public void service (HttpServletRequest request, HttpServletResponse response)
  {
    try
    {
      PrintWriter out = response.getWriter() ;
      out.println ("<!DOCTYPE html>") ;
      out.println ("<title>Bonjour tout le monde !</title>") ;
      out.println ("<p>Hello world!</p>") ;
    }
    catch (IOException e)
    {
      e.printStackTrace() ;
    }
  }
}

Sortie générée après déploiement :

<!DOCTYPE html>
<title>Bonjour tout le monde !</title>
<p>Hello world!</p>

Avantages et inconvénients de l'utilisation des servlets

modifier

Avantages

modifier
  • Supportées par plusieurs vendeurs de serveurs
  • Multi-plateformes : écrites en Java
  • Extensibles : Utilisables avec d’autres technologies Java (JSP, RMI, JDBC, Javabeans, ...)
  • Intégrables dans des environnements plus larges
  • Performantes : exécutées dans des threads
  • Sécurisées : exécutées dans une JVM
  • Pas limitées au protocole HTTP


Inconvénients

modifier
  • Complexité de prise en main pour les non initiés

Historique

modifier
Version Date de sortie Plateforme
Servlet 4.0 Septembre 2017 JavaEE 8
Servlet 3.1 Mai 2013 JavaEE 7
Servlet 3.0 Décembre 2009 JavaEE 6, JavaSE 6
Servlet 2.5 Septembre 2005 JavaEE 5, JavaSE 5
Servlet 2.4 Novembre 2003 J2EE 1.4, J2SE 1.3
Servlet 2.3 Aout 2001 J2EE 1.3, J2SE 1.2
Servlet 2.2 Aout 1999 J2EE 1.2, J2SE 1.2
Servlet 2.1 Novembre 1998 --
Servlet 2.0 -- --
Servlet 1.0 Juin 1997 --

Notes et références

modifier
  1. Servlet est masculin, selon le Grand dictionnaire terminologique de l'OQLF.
  2. Servlet est masculin ou féminin selon wiktionary.
  3. Servlet est féminin selon le livre Servlets Java : guide du programmeur.

Voir aussi

modifier

Liens externes

modifier

📚 Artikel Terkait di Wikipedia

Jakarta Server Pages

devenir des servlets Java. Un compilateur JSP peut créer une servlet Java en code source Java qui peut à son tour être compilé par le compilateur Java, ou peut

Java Card

autres périphériques avec mémoire. Les applications Java Card sont vues comme des applets ou des servlets. À partir de la version 3.0, éditée par Sun en mars

Apache Tomcat

gère les servlets et les JSP (par un compilateur Jasper compilant les pages JSP pour en faire des servlets). Tomcat a été écrit en langage Java. Il peut

Java (langage)

web (servlets, applets) et une déclinaison pour l'entreprise (J2EE). La portabilité du bytecode Java est assurée par la machine virtuelle Java, et éventuellement

Clojure

et une "interface conviviale pour Lisp pour les servlets Java" (Lisp-friendly interface to Java Servlets, Lisplets). Hickey a passé environ deux ans et

Uniface

en production. N'importe quel serveur web peut être utilisé. Servlets Java : servlets utilisées pour la gestion des échanges de communication entre le

Jenkins (logiciel)

l'intégration continue et la livraison continue. Écrit en Java, Jenkins fonctionne dans un conteneur de servlets tel qu’Apache Tomcat, ou en mode autonome avec son

Technologies Web

mars 1996. Le succès ne sera pas de longue durée. JavaServer Pages, Active Server Pages ou Java Servlet étaient très répandues dans les années 1990. Les