Bonjour, je suis nouveau dans le J2EE ( en fait je connais beaeucoup de théorie dessu mais loin derrière en pratique, ) voici je fais actuellement un tuto ( formulaire ) et suis bloqué sur la ( une simple en plus ) servlet depui 2 jours , puisque j'ai fait le test des JSP ( vues) elles marches.
j'obtiens l'erreur 404 en voulant accecder à ma page principale :http://localhost:8080/firsttest2/main
le code du formulaire2.jsp :
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 <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <% // on récupère les données du modèle String nom=(String)request.getAttribute("nom"); String age=(String)request.getAttribute("age"); String urlAction=(String)request.getAttribute("urlAction"); %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Personne - formulaire2</title> </head> <body> <center> <h2>Personne - formulaire2</h2> <hr> <form method="post"> <table> <tr> <td>Nom</td> <td><input name="txtNom" value="<%= nom %>" type="text" size="20"></td> </tr> <tr> <td>Age</td> <td><input name="txtAge" value="<%= age %>" type="text" size="3"></td> </tr> </table> <table> <tr> <td><input type="submit" value="Envoyer"></td> <td><input type="reset" value="Rétablir"></td> <td><input type="button" value="Effacer"></td> </tr> </table> Les bases du développement web MVC en Java, par l'exemple 56/264 <input type="hidden" name="action" value="validationFormulaire"> </form> </center> </body> </html>
le web.xml
le code de ma servlet firstserv2
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
84
85
86
87
88
89
90
91
92
93 <?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:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>firsttest</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <servlet> <description></description> <display-name>firstserv2</display-name> <servlet-name>firstserv2</servlet-name> <servlet-class>mypack.firstserv2</servlet-class> <init-param> <param-name>urlReponse</param-name> <param-value> /WEB-INF/response.jsp </param-value> </init-param> <init-param> <param-name>urlErreurs</param-name> <param-value> /WEB-INF/erreur.jsp </param-value> </init-param> <init-param> <param-name>urlFormulaire</param-name> <param-value> /WEB-INF/formulaire2.jsp </param-value> </init-param> <init-param> <param-name>urlControleur</param-name> <param-value>main</param-value> </init-param> <init-param> <param-name>lienRetourFormulaire</param-name> <param-value> Retour au formulaire </param-value> </init-param> <init-param> <param-name>defaultPrenom</param-name> <param-value>inconnu</param-value> </init-param> <init-param> <param-name>defaultAge</param-name> <param-value>XXX</param-value> </init-param> </servlet> <servlet> <description></description> <display-name>firstserv</display-name> <servlet-name>firstserv</servlet-name> <servlet-class>mypack.firstserv</servlet-class> <init-param> <param-name>defaultNom</param-name> <param-value>inconnu</param-value> </init-param> <init-param> <param-name>defaultPrenom</param-name> <param-value>inconnu</param-value> </init-param> <init-param> <param-name>defaultAge</param-name> <param-value>XXX</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>firstserv</servlet-name> <url-pattern>/firstserv</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>firstserv2</servlet-name> <url-pattern>/main</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-file-list> </web-app>
quel est donc l'erreur car en testant la vue formulaire seule elle marche , merci pour votre aide
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143 package mypack; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.ServletConfig; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; @SuppressWarnings("serial") public class firstserv2 extends HttpServlet { private String urlErreurs = null; private ArrayList erreursInitialisation = new ArrayList<String>(); private String[] paramètres={"urlFormulaire","urlReponse"}; private Map params=new HashMap<String,String>(); // init public void init() throws ServletException { // on récupère les paramètres d'initialisation de la servlet ServletConfig config = getServletConfig(); // on traite les autres paramètres d'initialisation String valeur=null; for(int i=0;i<paramètres.length;i++){ // valeur du paramètre valeur=config.getInitParameter(paramètres[i]); // paramètre présent ? if(valeur==null){ // on note l'erreur erreursInitialisation.add("Le paramètre ["+paramètres[i]+"] n'a pas été initialisé"); } else{ // on mémorise la valeur du paramètre params.put(paramètres[i],valeur); } // l'url de la vue [erreurs] a un traitement particulier urlErreurs = config.getInitParameter("urlErreurs"); if (urlErreurs == null) throw new ServletException( "Le paramètre [urlErreurs] n'a pas été initialisé"); } } public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { // on vérifie comment s'est passée l'initialisation de la servlet if (erreursInitialisation.size() != 0) { // on passe la main à la page d'erreurs request.setAttribute("erreurs", erreursInitialisation); getServletContext().getRequestDispatcher(urlErreurs).forward( request, response); // fin return; } // on récupère la méthode d'envoi de la requête String méthode=request.getMethod().toLowerCase(); // on récupère l'action à exécuter String action=request.getParameter("action"); // action ? if(action==null){ action="init"; } // exécution action if(méthode.equals("get") && action.equals("init")){ // démarrage application doInit(request,response); return; } if(méthode.equals("post") && action.equals("validationFormulaire")){ // validation du formulaire de saisie doValidationFormulaire(request,response); return; } // autres cas doInit(request,response); } // affichage vue initiale void doInit(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{ // on envoie le formulaire vide request.setAttribute("nom", ""); request.setAttribute("age", ""); getServletContext().getRequestDispatcher((String)params.get("urlFormulaire")).forward( request, response); return; } // validation du formulaire void doValidationFormulaire(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{ // on récupère les paramètres String nom = request.getParameter("txtNom"); String age = request.getParameter("txtAge"); // vérification des paramètres ArrayList<String> erreursAppel = new ArrayList<String>(); // le nom doit être non vide nom = nom.trim(); if (nom.equals("")) erreursAppel.add("Le champ [nom] n'a pas été rempli"); // l'âge doit être un entier >=0 if (!age.matches("^\\s*\\d+\\s*$")) erreursAppel.add("Le champ [age] est erroné"); // des erreurs dans les paramètres ? if (erreursAppel.size() != 0) { // on envoie la page d'erreurs request.setAttribute("erreurs", erreursAppel); getServletContext().getRequestDispatcher(urlErreurs).forward(request, response); return; } // les paramètres sont corrects - on envoie la page réponse request.setAttribute("nom", nom); request.setAttribute("age", age); getServletContext().getRequestDispatcher((String)params.get("urlReponse")).forward(request, response); return; } // post public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { // on passe la main au GET doGet(request, response); } }
cordialement,
Partager