2.1 Construction de routes - dosseggegw1/AMT_projet Wiki

Définir un servlet

Afin d'établir une route, il faut commencer par définir un servlet dans le fichier web.xml

    <servlet>
        <servlet-name>Accueil</servlet-name>
        <servlet-class>ch.heigvd.amt.projet.shop_els.presentation.Index</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

Ici on constate que le nom de notre servlet sera "Accueil", qu'il est sensé appelé la classe java "Index" afin de traiter les requêtes qui lui sont envoyées et qu'on a décidé qu'il sera appelé directement dès le démarrage de l'application.

    <servlet-mapping>
        <servlet-name>Accueil</servlet-name>
        <url-pattern>/index</url-pattern>
    </servlet-mapping>

Ici on définit le mapping qui va permettre d'appeler le servlet lorsque l'on effectue une requête vers l'URL "/index"

Définir la classe java et rediriger les requêtes

Afin de rediriger les requêtes vers la vue, il faut implémenter la classe comme suit :

@WebServlet("/index")
public class Index extends HttpServlet {

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

    }
}

Ici on fait hériter notre classe de "HttpServlet" puisque notre classe va servir de servlet pour des requêtes HTTP. La méthode "doGet" prend un paramètre la requête et la réponse du servlet HTTP afin de rediriger le tout vers la vue grâce à la méthode "getRequestDispatcher" et du "forward".

Le "path" qu'il faut donner au getRequestDispatcher est relative par rapport au dossier "webapp".

Je me suis en partie inspiré de ce tutoriel sur les redirections JSP : https://www.wideskills.com/jsp/jsp-request-redirect-and-forward