Bonjour,
Je suis debutant sur J2ee ,j'essaye de developper une application basée sur le MVC.
j'ai developper mes modeles "Formulaire.jsp,Reponse.jsp,Erreurs.jsp",puis j'ai ma servlet ServletPersonne.java,et mon fichier web.xml avec l'url-pattern"/main".mais ca me donne une erreur
type Rapport d'état
message /GET/personne1/main
description La ressource demandée (/GET/personne1/main) n'est pas disponible.
Voici mon code
Web.xml
Formulaire.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 <?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name> mvc-personne-01 </display-name> <!-- ServletPersonne --> <servlet> <servlet-name>ServletPersonne</servlet-name> <servlet-class>istia.it.servlet.personne.ServletPersonne</servlet-class> <init-param> <param-name> urlReponse</param-name> <param-value> /WEB-INF/vues/reponse.jsp </param-value> </init-param> <init-param> <param-name> urlErreurs</param-name> <param-value> /WEB-INF/vues/erreurs.jsp </param-value> </init-param> <init-param> <param-name> urlFormulaire</param-name> <param-value> /WEB-INF/vues/formulaire.jsp </param-value> </init-param> </servlet> <!-- mapping ServletPersonne --> <servlet-mapping> <servlet-name>personne</servlet-name> <url-pattern>/main</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-file-list> </web-app>
Reponse.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 <%@ 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"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <% //on recupere les donnes du modele String nom=(String)request.getAttribute("nom"); String age=(String)request.getAttribute("age"); %> <title>personne-formulaire</title> </head> <body> <body> <center> <h2>Personne - formulaire</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> <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> <input type="hidden" name="action" value="validationFormulaire"> </form> </center> </body> </html>
Erreurs.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 <%@ 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 recupere les donnes du modele String nom=(String)request.getAttribute("nom"); String age=(String)request.getAttribute("age"); %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>personne</title> </head> <body> <h2>Personne - réponse</h2> <hr> <table> <tr> <td>Nom</td> <td><%= nom %> </tr> <tr> <td>Age</td> <td><%= age %> </tr> </table> </body> </html>
et puis mon controleurs ServletPersonne
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 <%@ 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"> <%@ page import="java.util.ArrayList" %> <% ArrayList erreurs=(ArrayList)request.getAttribute("erreurs"); %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Insert title here</title> </head> <body> <h2>Les erreurs suivantes se sont produites</h2> <ul> <% for(int i=0;i<erreurs.size();i++) { out.println("<li>" + (String) erreurs.get(i) + "</li>\n"); }//for %> </ul> </body> </html>
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 public void init() throws ServletException { //on récupère la configuration de l'application web, c.a.d. le contenu du fichier [web.xml] ServletConfig Config=getServletConfig(); //on récupère les paramètres urls d'initialisation de la servlet dont les noms sont définis dans le tableau //[paramètres] de la ligne 9 String valeur=null; for(int i=0;i<parametres.length;i++) {// valeur du paramètre url valeur=Config.getInitParameter(parametres[i]); //parametre present? if(valeur==null){ // on note l'erreur erreursInitialisation.add("Le paramètre ["+parametres[i]+"] n'a pas été initialisé"); } else { //on memorise la valeur du parametre url params.put(parametres[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é"); } } //la méthode [doGet] appelée par le serveur web lorsqu'une requête de type GET a été faite à l'application 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); return; } // : on récupère la méthode [get] ou [post] que le client a utilisée pour faire sa requête String methode=request.getMethod().toLowerCase(); /*on récupère la valeur du paramètre [action] de la requête. Rappelons que dans notre application seule la requête n° 2 [POST /personne1/main] a le paramètre [action]. Dans cette requête, il a la valeur [validationFormulaire].*/ String action=request.getParameter("action"); /*si le paramètre [action] n'est pas présent, on lui affecte la valeur " init ". Ce sera le cas lors de la requête initiale n° 1 [GET /personne1/main].*/ if(action==null) { action="init"; } //execution : traitement de la requête n° 1 [GET /personne1/main]. if(methode.equals("get") && action.equals("init")) { doInit(request,response); return; } //traitement de la requête n° 2 [POST /personne1/main]. if(methode.equals("post") && action.equals("ValidationFormulaire")) { //validation du forlmualire de saisie doValidationFormulaire(request,response); } //autre cas.si on n'est pas dans l'un des deux cas précédents, on fait comme si on était dans le cas n° 1 doInit(request,response); } //la méthode [doInit] traite l'action n° 1 [GET /personne1/main] 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; } //la méthode [doValidationFormulaire] traite l'action n° 2 [POST /personne1/main] avec les paramètres //postés [txtNom, txtAge, action]. void doValidationFormulaire(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException { String nom = request.getParameter("txtNom"); String age = request.getParameter("txtAge"); // vérification des paramètres ArrayList<String> erreursSaisie = new ArrayList<String>(); // le nom doit être non vide nom = nom.trim(); if (nom.equals("")) erreursSaisie.add("Le champ [nom] n'a pas été rempli"); // l'âge doit être un entier >=0 if (!age.matches("^\\s*\\d+\\s*$")) erreursSaisie.add("Le champ [age] est erroné"); // des erreurs dans les paramètres ? if (erreursSaisie.size() != 0) { // on envoie la page d'erreurs request.setAttribute("erreurs", erreursSaisie); 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; } //doPost public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException, ServletException { doGet(request,response); } }
Merci de bien vouloir m'aider
Partager