IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Web en Java Discussion :

Pb de débutant, simple formulaire


Sujet :

Développement Web en Java

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 15
    Points : 11
    Points
    11
    Par défaut Pb de débutant, simple formulaire
    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


    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>
    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
    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);
    	 }
     }
    quel est donc l'erreur car en testant la vue formulaire seule elle marche , merci pour votre aide

    cordialement,

  2. #2
    Membre du Club Avatar de ilamine55
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 89
    Points : 48
    Points
    48
    Par défaut
    si t as la page 404 , ie que tomcat ne trouve pas l'url.
    vérifie bien ton fichier web.xml

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 15
    Points : 11
    Points
    11
    Par défaut
    Bonjour, merci pour ta réponse.
    Mais justement j'ai réetudié mon fichier web.xml , mais je ne vois pas le pb
    je l'ai posté dans mon precedent mail ( l'url /firsttest/main est bien mappé dans ma servlet)

  4. #4
    Membre du Club Avatar de ilamine55
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 89
    Points : 48
    Points
    48

  5. #5
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 15
    Points : 11
    Points
    11
    Par défaut
    j'ai déjà testé ça, mes vues n'ont pas de problème, c'est mon serveur qui ne fait pas le lien entre la servlet et mon url ( donc le pb est certainement dans web.xml)

  6. #6
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Points : 3 938
    Points
    3 938
    Par défaut
    1)Ta webapp c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <display-name>firsttest</display-name>
    ou firsttest2?
    2)Je ne te suis pas bien, ton formulaire2 est censé appeler la servlet firstserv2 c'est bien ca? dans ce cas, je ne vois pas dans ton formulaire où est ce que tu fais le lien avec cette servlet.
    Vous avez peut être hâte de réussir et il n'y a rien de mal à cela...
    mais la patience est aussi une vertu; l'échec vous l'enseignera certainement..."

  7. #7
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 15
    Points : 11
    Points
    11
    Par défaut
    Bonjour,
    ma webapp c'est firsttest2 , et mon formulaire est bien censé d'appeler ma servlet firstserv2.
    Faire le lien dans la formulaire , ok je regarde ça

  8. #8
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 15
    Points : 11
    Points
    11
    Par défaut
    ben , on recupère les données de la JSP à partir du modèle.ce qui est fait par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <%@ 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");
    %>
    <html>
    <head>
    je ne vois pas où il faut faire le lien, ou de quel lien tu parles.

  9. #9
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Points : 3 938
    Points
    3 938
    Par défaut
    Tu sais comment on fait appel à une servlet dans un formulaire ou pas? je ne vois pas d'attribut action dans ta balise form.Essaie ca dans ton web.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <servlet-mapping>
        <servlet-name>firstserv2</servlet-name>
        <url-pattern>/</url-pattern>
      </servlet-mapping>
    relances ton serveur, et refais un submit depuis ton formulaire.
    Vous avez peut être hâte de réussir et il n'y a rien de mal à cela...
    mais la patience est aussi une vertu; l'échec vous l'enseignera certainement..."

  10. #10
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 15
    Points : 11
    Points
    11
    Par défaut
    merci ,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <servlet-mapping>
        <servlet-name>firstserv2</servlet-name>
        <url-pattern>/</url-pattern>
      </servlet-mapping>

    toujours rien, je ne peux acceder à mon formulaire en ecrivant directement le lien de la servlet : http://localhost:8080/firsttest2/firstserv2
    par contre mes jsp fonctionne bien

    peut etre qu' il faut que je passe le parametre
    "action" à mon formulaire ???

  11. #11
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 15
    Points : 11
    Points
    11
    Par défaut
    merci pour ton aide,
    ca marche maintenant, effectivement ,il fallait faire le lien avec la servlet dans mon formulaire pour pouvoir avoir accès directement par la servlet

  12. #12
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Points : 3 938
    Points
    3 938
    Par défaut
    Tant mieux, tu peux tagger ton post en "résolu" alors. Ca aide les autres dans la recherche s'ils se retrouvent dans la même merde...
    Vous avez peut être hâte de réussir et il n'y a rien de mal à cela...
    mais la patience est aussi une vertu; l'échec vous l'enseignera certainement..."

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Débutant: Réalisation formulaire
    Par jrogron dans le forum Access
    Réponses: 5
    Dernier message: 03/08/2006, 04h54
  2. Débutant: Problème formulaire multi critères
    Par jrogron dans le forum Access
    Réponses: 3
    Dernier message: 02/08/2006, 14h08
  3. Débutant: Démarrage formulaire en lecture seule
    Par jrogron dans le forum Access
    Réponses: 3
    Dernier message: 31/07/2006, 13h18
  4. [débutant]Sous formulaires
    Par yorki dans le forum Access
    Réponses: 2
    Dernier message: 19/05/2006, 14h42
  5. [Débutant][swing]Formulaire
    Par pingoui dans le forum Débuter
    Réponses: 43
    Dernier message: 06/08/2004, 16h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo