Rechercher
 

Améliorations / Corrections

Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.

Emplacement :

Description des améliorations :

Cycle de vie d'une servlet

Mise en place d'une architecture MVC Web Listeners



Accès rapide :
La vidéo
Le code de la vidéo

La vidéo

Cette vidéo vous présente les différentes méthodes intervenant dans le cycle de vie d'une Servlet (init, service, doGet, doPost, destroy, ...).


Cycle de vie d'une servlet

Le code de la vidéo

Voici le code de la servlet présentée dans la vidéo.

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
 17 
 18 
 19 
 20 
 21 
 22 
 23 
 24 
 25 
 26 
 27 
 28 
 29 
 30 
 31 
 32 
 33 
 34 
 35 
 36 
 37 
 38 
 39 
 40 
 41 
 42 
 43 
 44 
 45 
 46 
 47 
 48 
 49 
 50 
 51 
package com.koor.hello;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet( urlPatterns="/lifecycle", loadOnStartup=1)
public class LifeCycleServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    private String databaseURL;
    private int counter;
    

    
    @Override
    public void init() throws ServletException {
        super.init();
        databaseURL = this.getServletContext().getInitParameter( "DATABASE_URL" );
        System.out.println( "In init " + databaseURL );
        counter = 0;
    }
    
    /*@Override
    protected void service(HttpServletRequest request, HttpServletResponse response) 
            throws ServletException, IOException {
        super.service(request, response);
    }*/
    
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setHeader( "Demo", "A Value" );
        response.getWriter().append("Served at: ").append(request.getContextPath());
        counter++;
        System.out.println( "In doGet " + counter );
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) 
            throws ServletException, IOException {
        doGet(request, response);
    }

    @Override
    public void destroy() {
        System.out.println( "In destroy" );
        super.destroy();
    }
}
Les méthodes du cycle de vie d'une Servlet

Et voici le contenu du descripteur de déploiement WEB-INF/web.xml.

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
 17 
 18 
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
         xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 
                             http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">

    <display-name>Hello World Web application</display-name>
    
    <context-param>
        <param-name>DATABASE_URL</param-name>
        <param-value>jdbc:mysql://localhost:3306/Hello</param-value>
    </context-param>

    <welcome-file-list>
        <welcome-file>login</welcome-file>
    </welcome-file-list>

</web-app>


Mise en place d'une architecture MVC Web Listeners