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
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
 
 
<?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>
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
38
39
40
41
42
43
44
 
 
<%@ 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>
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
 
 
<%@ 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>
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
 
<%@ 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>
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
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
 
public class ServletPersonne extends HttpServlet {
 
	//parametre d'instance
 
	private String urlErreurs=null;
	private ArrayList erreursInitialisation=new ArrayList<String>();
	private String[] parametres={"urlFormulaire","urlReponse"};
	private Map params=new HashMap<String,String>();
 
	//la méthode [init] exécutée au chargement initial de la servlet
 
	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.