Bonjour

Je fais un petit essai de communication jsp/servlet (en me basant sur un toturial de Serge Tahé) et ma jsp n'a pas l'air de communiquer avec ma servlet... En effet, elle affiche désespérement la même chose, à savoir deux champs textes avec null dedans, champs qui reviennent si on modifie puis clique sur Envoyer. J'ai essayé de simplifier plein de choses, de faire des sorties consoles, mais rien ne m'a apporté de solution... J'commence grave à me faire des cheveux gris alors j'ai pensé à vous

Je ne sais pas trop par où commencer pour vous donner des billes, je vais donc faire dans l'ordre suivant : config, web.xml, page jsp (formulaire2.jsp) puis servlet (ServletFormulaire2.java).

Config :
tomcat5.5.9/Eclipse avec plug in sysdeo sur Windows XP tests avec Firefox.

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
 
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app SYSTEM "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
	<servlet>
		<servlet-name>formulairepersonne2</servlet-name>
		<servlet-class>MyP1.ServletFormulaire2</servlet-class>
		<init-param>
			<param-name>defaultNom</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>formulairepersonne2</servlet-name>
		<url-pattern>/formulaire2</url-pattern>
	</servlet-mapping>
</web-app>
Page jsp 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
<%
String nom=(String)request.getAttribute("nom");
String age=(String)request.getAttribute("age");
%>
<html>
	<head>
		<title>Personne - formulaire</title>
	</head>
	<body>
		<center>
			<h2>Personne - formulaire</h2>
			<hr>
			<form action="" 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="Retablir"></td>
				<td><input type="button" value="Effacer"></td>
				</tr>
				</table>
			</form>
		</center>
	</body>
</html>
Ma servlet ServletFormulaire2.java :
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
/*
 * Created on 29 juin 2005
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
package MyP1;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
 
import java.io.IOException;
 
public class ServletFormulaire2 extends HttpServlet {
	// paramètres d'instance
	private String defaultNom = null;
	private String defaultAge = null;
	//init
	public void init() {
		// on récupère les paramètres d'initialisation de la servlet
		ServletConfig config = getServletConfig();
		defaultNom = config.getInitParameter("defaultNom");
		if(defaultNom==null) defaultNom="NNNNNNNNNNNNNNN";
		defaultAge = config.getInitParameter("defaultAge");
		if(defaultAge==null) defaultAge="AAA";
		System.out.println("init");
	}
	//GET
	public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException 
	{
		// on récupère les paramètres du formulaire
		String nom = request.getParameter("txtNom");
		if (nom == null) {
			nom = defaultNom;
		}
		String age = request.getParameter("txtAge");
		if (age == null) {
			age = defaultAge;
		}
		// on affiche le formulaire
		request.setAttribute("nom",nom);
		request.setAttribute("age",age);
		getServletContext().getRequestDispatcher("/Formulaire.html").forward(request,response);
	} //GET
	//POST
	public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException,
		ServletException {
		// on passe la main au GET
		doGet(request, response);
	}
}