Bonsoir à tous,
J'ai un problème avec une servlet que je contacte via l'url suivante : http://localhost:12150/filRouge6/client ça m'affiche bien un formulaire me permettant de saisir des info concernant un client mais dès que j'ajoute un filtre à mon projet je reçois l'erreur 404!
Voici le code du filtre :
Voici le code de la servlet :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
52
53
54
55
56
57
58
59 package filtre; import java.io.IOException; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.annotation.WebFilter; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import DAO.Client; import DAO.ClientDao; import DAO.DAOFactory; /** * Servlet Filter implementation class RestrictionFilter */ @WebFilter("/RestrictionFilter") public class MonFiltre implements Filter { public static final String sessionUSER = "sessionUtilisateur"; private static final String configDaoFactory = "dao"; private static final String sessionCLIENTS = "clients"; private ClientDao daoClient; public void init( FilterConfig config ) throws ServletException { this.daoClient = ((DAOFactory) config.getServletContext().getAttribute(configDaoFactory)).getClientDao(); } public void doFilter( ServletRequest req, ServletResponse res, FilterChain chain ) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) req; @SuppressWarnings("unused") HttpServletResponse response = (HttpServletResponse) res; HttpSession session = request.getSession(); if(session.getAttribute(sessionUSER)== null){ List<Client> listeClients = daoClient.listerClient(); Map<Long,Client> mapClient = new HashMap<Long,Client>(); for(Client clien : listeClients){ mapClient.put(clien.getId(), clien); } session.setAttribute(sessionCLIENTS, mapClient); } chain.doFilter(request,res); } public void destroy() { } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83 package fil6Servlet; import java.io.IOException; import java.util.HashMap; import java.util.Map; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import DAO.Client; import DAO.ClientDao; import DAO.DAOFactory; import ObjetMetier.ObjetClient; import ObjetMetier.ValidationChamp; /** * Servlet implementation class ClientServlet */ @WebServlet("/ClientServlet") public class ClientServlet extends HttpServlet { private static final long serialVersionUID = 1L; public static final String confFACTORY = "daofactory"; public static final String CHEMIN = "chemin"; public static final String CLIENT = "client"; public static final String Formulaire = "form"; public static final String sessionCLIENTS = "clients"; public static final String Vue = "/WEB-INF/afficherClient.jsp"; public static final String chemin = "/WEB-INF/creerClient.jsp"; private ClientDao daoClien; public void init() throws ServletException { this.daoClien = ( (DAOFactory) getServletContext().getAttribute(confFACTORY)).getClientDao(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.getServletContext().getRequestDispatcher(chemin).forward(request, response); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ObjetClient clientMetier = new ObjetClient(daoClien); Client client; try { client = clientMetier.clientInfo(request); request.setAttribute( CLIENT, client ); request.setAttribute( Formulaire, clientMetier ); if ( clientMetier.getErreurs().isEmpty() ) { HttpSession session = request.getSession(); Map<Long, Client> clients = (HashMap<Long, Client>) session.getAttribute( sessionCLIENTS ); if ( clients == null ) { clients = new HashMap<Long, Client>();} clients.put( client.getId(), client ); session.setAttribute( sessionCLIENTS, clients ); this.getServletContext().getRequestDispatcher( Vue ).forward( request, response ); } else { this.getServletContext().getRequestDispatcher( chemin ).forward( request, response ); } } catch (ValidationChamp e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
Voici le code de Web.xml :
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
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 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:jsp="http://java.sun.com/xml/ns/javaee/jsp" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <filter> <filter-name>CreationFilter</filter-name> <filter-class>filtre.MonFiltre</filter-class> </filter> <filter-mapping> <filter-name>CreationFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <listener> <listener-class>ConfigDAO.InitialisationDAOFactory</listener-class> </listener> <servlet> <servlet-name>CreationClient</servlet-name> <servlet-class>fil6Servlet.ClientServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>CreationClient</servlet-name> <url-pattern>/client</url-pattern> </servlet-mapping> <jsp-config> <jsp-property-group> <url-pattern>*.jsp</url-pattern> <include-prelude>/WEB-INF/inclusionJSTL.jsp</include-prelude> </jsp-property-group> </jsp-config> </web-app>
Voici la page jsp de la liste des clients :
Code jsp : Sélectionner tout - Visualiser dans une fenêtre à part
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 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <c:choose> <p> <c:when test = "${empty sessionScope.clients}"> <c:out value = "Aucun client enregistré/"/> </c:when> </p> <c:otherwise> <table> <tr> <td>Nom</td> <td>Prenom</td> <td>Adresse</td> <td>Téléphone</td> <td>Email</td> </tr> <tr> <c:forEach items = "${sessionScope.clients}" var = "mapclient"> <td><c:out value = "${mapclient.value.nom}"/></td> <td><c:out value = "${mapclient.value.prenom}"/></td> <td><c:out value = "${mapclient.value.adresse}"/></td> <td><c:out value = "${mapclient.value.telephone}"/></td> <td><c:out value = "${mapclient.value.email}"/></td> </c:forEach> </tr> </table> </c:otherwise> </c:choose> </body> </html>
J'ai besoin de votre aide s'il vous plait.Merci d'avance!!!
Partager