[jsp/servlet]Pas de com entre jsp/servlet?
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:
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:
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:
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);
}
} |