Skip to content

Configuration d'un servlet

Les servlet

Pour configurer un servlet Java, il nous suffit simplement de créer une classe qui hérite de la classe HttpServlet. En plus des différentes méthodes HTTP, il est aussi possible de définir les méthodes init() et destroy qui sont appelées lors de l'initialisation et de le destruction du servlet respectivement.

Pour que la configuration automatique du servlet puisse se faire, on ajoutera l'annotation @WebServlet tout en spécifiant les valeurs des attributs name et value.

@WebServlet(name = "HelloServlet", value = "/hello")
public class HelloServlet extends HttpServlet {

    private String message;

    public void init() {
        message = "Hello World!";
    }

}

Méthodes HTTP

Il suffit maintenant de configurer les différentes méthodes HTTP pour permettre de répondre aux requêtes. Chacune des méthodes HTTP (doGet, doPost, etc.) recevra deux (2) paramètres, soît la requête et la réponse de type HttpServletRequest et HttpServletResponse respectivement.

Écrire la réponse

Il est possible d'écrire nous même la réponse d'une méthode HTTP. Pour faire cela, il faudra tout d'abord indiquer le type de contenu que nous retournerons, puis de récupérer le flux de sortie de la réponse et d'y écrire le code HTML.

Voici un exemple de la méthode doGet du servlet configuré préalablement ci-dessus.

public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
        // Indiquer le typer de contenu
        response.setContentType("text/html");

        // Récupérer le flux de sortie et y écrire le HTML
        PrintWriter out = response.getWriter();
        out.println("<html><body>");
        out.println("<h1>" + message + "</h1>");
        out.println("</body></html>");
    }

Bien entendu cet exemple est relativement simple. Nous pourrions également accéder à l'objet request afin de récupérer de l'information sur la requête entrante.

Écrire tout le code d'une page HTML via le flux de sortie comme ci-dessus peut rapidement devenir très lourd et plutôt difficile à écrire. Pour tirer avantage des outils que nous avons à notre disposition, nous utiliserons plutôt les pages JSP.

La technologie JSP (Java Server Pages) nous permet d'écrire du code Java dans nos pages HTML, un peu comme les pages Razor (C#) ou Blade (PHP).

Pour demander à un m.thode de servlet de rediriger vers une page JSP, il faudra récupérer le requestDispatcher, lui indiquer la page qu'on veut utiliser, puis transférer la requête et la réponse vers cette page.

public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
        request.getRequestDispatcher("/index.jsp").forward(request, response);
    }

De cette façon, on redirigerait vers la page index.jsp.

Info

Notez qu'on pourra passer des informations vers la page en les ajoutant dans l'objet request. Les pages JSP ont un accès facile à plusieurs variables dont celle-ci. La section sur les pages JSP contient plus d'informations à cet effet.