Servlets - Exemples

Les servlets sont des classes Java qui traitent les requêtes HTTP et implémentent le javax.servlet.Servletinterface. Les développeurs d'applications Web écrivent généralement des servlets qui étendent javax.servlet.http.HttpServlet, une classe abstraite qui implémente l'interface Servlet et est spécialement conçue pour gérer les requêtes HTTP.

Exemple de code

Voici l'exemple de structure de code source d'un exemple de servlet pour afficher Hello World -

// Import required java libraries
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

// Extend HttpServlet class
public class HelloWorld extends HttpServlet {
 
   private String message;

   public void init() throws ServletException {
      // Do required initialization
      message = "Hello World";
   }

   public void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
      
      // Set response content type
      response.setContentType("text/html");

      // Actual logic goes here.
      PrintWriter out = response.getWriter();
      out.println("<h1>" + message + "</h1>");
   }

   public void destroy() {
      // do nothing.
   }
}

Compiler un servlet

Créons un fichier avec le nom HelloWorld.java avec le code ci-dessus. Placez ce fichier dans C: \ ServletDevel (sous Windows) ou dans / usr / ServletDevel (sous Unix). Cet emplacement de chemin doit être ajouté à CLASSPATH avant de continuer.

En supposant que votre environnement est correctement configuré, entrez ServletDevel répertoire et compilez HelloWorld.java comme suit -

$ javac HelloWorld.java

Si le servlet dépend d'autres bibliothèques, vous devez également inclure ces fichiers JAR sur votre CLASSPATH. J'ai inclus uniquement le fichier JAR servlet-api.jar car je n'utilise aucune autre bibliothèque dans le programme Hello World.

Cette ligne de commande utilise le compilateur javac intégré fourni avec le kit de développement logiciel Java (JDK) Sun Microsystems. Pour que cette commande fonctionne correctement, vous devez inclure l'emplacement du SDK Java que vous utilisez dans la variable d'environnement PATH.

Si tout se passe bien, la compilation ci-dessus produirait HelloWorld.classfichier dans le même répertoire. La section suivante explique comment un servlet compilé serait déployé en production.

Déploiement de servlet

Par défaut, une application de servlet se trouve dans le chemin <Tomcat-installationdirectory> / webapps / ROOT et le fichier de classe résiderait dans <Tomcat-installationdirectory> / webapps / ROOT / WEB-INF / classes.

Si vous avez un nom de classe complet de com.myorg.MyServlet, alors cette classe de servlet doit être située dans WEB-INF / classes / com / myorg / MyServlet.class.

Pour l'instant, copions HelloWorld.class dans <Tomcat-installationdirectory> / webapps / ROOT / WEB-INF / classes et créons les entrées suivantes dans web.xml fichier situé dans <Tomcat-installation-directory> / webapps / ROOT / WEB-INF /

<servlet>
   <servlet-name>HelloWorld</servlet-name>
   <servlet-class>HelloWorld</servlet-class>
</servlet>

<servlet-mapping>
   <servlet-name>HelloWorld</servlet-name>
   <url-pattern>/HelloWorld</url-pattern>
</servlet-mapping>

Au-dessus des entrées à créer dans les balises <web-app> ... </web-app> disponibles dans le fichier web.xml. Il peut y avoir plusieurs entrées dans ce tableau déjà disponibles, mais peu importe.

Vous avez presque terminé, commençons maintenant le serveur tomcat en utilisant <Tomcat-installationdirectory> \ bin \ startup.bat (sous Windows) ou <Tomcat-installationdirectory> /bin/startup.sh (sous Linux / Solaris etc.) et enfin tapez http://localhost:8080/HelloWorlddans la zone d'adresse du navigateur. Si tout se passe bien, vous obtiendrez le résultat suivant