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

Servlets/JSP Java Discussion :

Un soucis sur les placement des pages et la methode


Sujet :

Servlets/JSP Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    173
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 173
    Points : 151
    Points
    151
    Par défaut Un soucis sur les placement des pages et la methode
    Bonjour,

    Je travaille avec Eclipse. Mon projet se transforme en une servlet, et 3 pages jsp, déposées dans le meme repertoire.

    Je rencontre deux soucis pour l'instant:
    Premier problème
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <form methode = "post" action ="reponse.jsp">
    ensuite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    String methode = request.getMethod().toLowerCase();
    String action = request.getParameter("action");
    j'obtiens methode = "get" et action = "null" est ce que c'est normal?

    deuxième problème

    Le compilateur veut absolument que mon fichier "reponse.jsp" soit dans la racine, c'est a dire, dans le meme repertoire que "index.jsp", generé par defaut par Eclipse. Et pas dans le meme repertoire que "formulaire.jsp"

  2. #2
    Membre expérimenté Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Points : 1 639
    Points
    1 639
    Par défaut
    Citation Envoyé par amine_en_france
    Bonjour,
    j'obtiens methode = "get" et action = "null" est ce que c'est normal?
    Ca depend, tu l'executes ou ce code ?

    Citation Envoyé par amine_en_france
    Le compilateur veut absolument que mon fichier "reponse.jsp" soit dans la racine, c'est a dire, dans le meme repertoire que "index.jsp", generé par defaut par Eclipse. Et pas dans le meme repertoire que "formulaire.jsp"
    ca ne doit pas poser de problemes, ca depend comment tu l'appelles!

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    173
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 173
    Points : 151
    Points
    151
    Par défaut
    Je ne comprends pas ta question,

    Je l'execute avec Eclipse

  4. #4
    Membre expérimenté Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Points : 1 639
    Points
    1 639
    Par défaut
    Citation Envoyé par amine_en_france
    Je ne comprends pas ta question,
    dans quelle classe? quelle methode?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Je l'execute avec Eclipse
    Je veux dire dans quelle jsp? quelle classe? quelle methode? avec quel chemin?



    Conclusion fais voir ton code, car sans le contexte je peux pas t'aider.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    173
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 173
    Points : 151
    Points
    151
    Par défaut Le code
    C'est executer via la servlet (le java)
    je joins les codes


    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
     
    //Controleur
     
    package servet.personne;
     
    import javax.servlet.*;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.*;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.Map;
     
    import javax.servlet.http.HttpServlet;
     
    @SuppressWarnings("serial")
    public class ServletPersonne extends HttpServlet {
    	String erreur = null;
    	private ArrayList erreurInit = new ArrayList<String>();
    	private String[] entree = new String[2];
    	private Map params = new HashMap<String,String>();
     
    	public void init()
    		throws ServletException{
    		ServletConfig config = getServletConfig();
     
    		String urlFormulaire = config.getInitParameter("urlFormulaire");
    		if(urlFormulaire == null)
    			erreurInit.add("Formulaire non chargé:!");
     
    		String urlResponse = config.getInitParameter("urlResponse");
    		if(urlResponse == null)
    			erreurInit.add("Reponse non chargé:!");
     
    		String urlErreur = config.getInitParameter("urlErreur");
    		if(urlErreur == null){
    			throw new ServletException("Page des erreurs non initialisée");
    		}
     
    		entree[0] = urlFormulaire;
    		params.put(entree[0] , urlFormulaire);
     
    		entree[1] = urlResponse;
    		params.put(entree[1] , urlResponse);
    		return;
     
    	}
     
    	public void doGet(HttpServletRequest request, HttpServletResponse response)
    		throws IOException, ServletException{
    			if(erreurInit.size() !=0){
    				request.setAttribute("erreurs", erreurInit);
    				getServletContext().getRequestDispatcher(erreur).forward(request, response);
    				return;
    			}
    			else{
    				String methode = request.getMethod().toLowerCase();
    				String action = request.getParameter("action");
    				if(action == null)
    					action = "init";
     
    				if(methode.equals("get") && action.equals("init")){
    					doInit(request,response);
    					return;
    				}
     
    				if(methode.equals("post") && action.equals("validationFormulaire")){
    					doValidationFormulaire(request, response);
    					return;
    				}
    				doInit(request,response);
    			}
    	}
     
    	public void doInit(HttpServletRequest request, HttpServletResponse response)
    		throws ServletException, IOException{
    			request.setAttribute("nom","");
    			request.setAttribute("age","");
    			getServletContext().getRequestDispatcher((String)params.get(entree[0])).forward(request, response);
    			return;
    	}
     
    	public void doPost(HttpServletRequest request, HttpServletResponse response)
    		throws ServletException, IOException{
    			doGet(request,response);
    	}
     
    	public void doValidationFormulaire(HttpServletRequest request, HttpServletResponse response)
    		throws ServletException, IOException{
    			String name = request.getParameter("NOM");
    			String old = request.getParameter("AGE");
    			ArrayList erreurList = new ArrayList<String>();
     
    			if(name.equals(""))
    				erreurList.add("Veuillez entrer un nom");
    			if(old.matches("^\\s*\\d+\\s*$"))
    				erreurList.add("Merci de vérifier l'âghe saisi");
    			if(erreurList.size()!=0){
    				request.setAttribute("erreurs", erreur);
    				getServletContext().getRequestDispatcher(erreur).forward(request, response);
    			}
     
    			request.setAttribute("NOM", name);
    			request.setAttribute("AGE", old);
    			getServletContext().getRequestDispatcher((String)params.get(entree[1])).forward(request,response);
    	}
    }
    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
    <%@ 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">
    <title>Formulaire</title>
    </head>
    <body>
    <%
            
     
            String nom = (String)request.getAttribute("NOM");
            String age = (String)request.getAttribute("AGE");
    %>
    <center>
    	<h1>Formulaire</h1>
    	<form methode = "post" action ="reponse.jsp">
    	<table>
    		<tr>
    			<td>Nom</td>
    			<td><input type = "text" size ="20" name ="NOM" value =""/></td>
    		</tr>
     
    		<tr>
    			<td>Age</td>
    			<td><input type = "text" size ="10" name ="AGE" value =""/></td>
    		</tr>
    				<input type = "submit" value = "OK"/>
    		<input type = "reset" value = "RESET"/>
     
    	</table>
    	</form>
    	<input type = "hidden" name ="action" value= "validationFormulaire"/>
     
    </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
     
    <%@ 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">
    <title>Reponse</title>
    </head>
    <body>
    <%
            String nom = (String)request.getParameter("NOM");
            String age = (String)request.getParameter("AGE");
    %>
     
    <center>
    	<h1>Reponse</h1>
    	Nom = <%=nom%>;
    	age = <%=age%>;
    </center>
    </body>
    </html>
    et enfin, le 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
     
      <?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>personneV1.0</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>
      <servlet-name>Personne</servlet-name> 
      <servlet-class>servet.personne.ServletPersonne</servlet-class> 
    - <init-param>
      <param-name>urlResponse</param-name> 
      <param-value>/WEB-INF/vues/reponse.jsp</param-value> 
      </init-param>
    - <init-param>
      <param-name>urlErreur</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>
    - <servlet-mapping>
      <servlet-name>Personne</servlet-name> 
      <url-pattern>/main</url-pattern> 
      </servlet-mapping>
      </web-app>
    Merci

  6. #6
    Membre éclairé Avatar de zorm
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Points : 672
    Points
    672
    Par défaut
    déja, getParameter("action") te renvoie null tout simplement parce que tu as déclaré
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <input type = "hidden" name ="action" value= "validationFormulaire"/>
    en dehors de ton formulaire donc il est pas pris en compte par HttpServletRequest.

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    173
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 173
    Points : 151
    Points
    151
    Par défaut
    ca a pas l'air de changer qq chose, bizzarement...

  8. #8
    Membre expérimenté Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Points : 1 639
    Points
    1 639
    Par défaut
    A mon avis vu que tu fais request.getMethod() dans ta method doGet ca me parait normal que cela te renvoie get (a verifier je suis pas sur....). Essaye de voir le resultat, si tu l'execute depuis ta methode doPost().

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    173
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 173
    Points : 151
    Points
    151
    Par défaut
    Meme si je fais mon traitement dans la methode doPost(), la methode request.getMethode() me retourne toujours une methode get et mon anction est toujours null. En plus, le compilateur cherche la page /personneV1.0/null.
    Que c'est beau de débuter :d

Discussions similaires

  1. [PHP 5.0] souci de pagination lors du clique sur les liens des pages
    Par unix27 dans le forum Langage
    Réponses: 2
    Dernier message: 03/11/2010, 12h33
  2. Réponses: 3
    Dernier message: 27/06/2007, 16h31

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