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 :

Erreur d'URL pour requestDispatcher


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 Erreur d'URL pour requestDispatcher
    Bonjour,
    Je n'arrive pas a comprendre pourquoi mon compilateur rale, pourtant tout me semble en place.

    Je vous joins le fichier du code 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
    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
    //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={"UrlFromulaire","urlResponse"};
    	private Map params = new HashMap<String,String>();
     
    	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<entree.length;i++){
    			valeur=config.getInitParameter(entree[i]);
    			if(valeur==null)
    				erreurInit.add(entree[i]+" non définit");
    			else{
    				params.put(entree[i], valeur);
    			}
    			erreur = config.getInitParameter("urlErreur");
    			if(erreur == null) throw new ServletException("Page des erreurs non initialisée");
    		}
     
    	}
     
    	public void doGet(HttpServletRequest request, HttpServletResponse response)
    		throws IOException, ServletException{
    			if(erreurInit.size() !=0){
    				request.setAttribute("erreur", erreurInit);
    				getServletContext().getRequestDispatcher("urlErreur").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("urlFormulaire")).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 erreur = new ArrayList<String>();
     
    			if(name.equals(""))
    				erreur.add("Veuillez entrer un nom");
    			if(old.matches("^\\s*\\d+\\s*$"))
    				erreur.add("Merci de vérifier l'âghe saisi");
    			if(erreur.size()!=0){
    				request.setAttribute("erreurs", erreur);
    				getServletContext().getRequestDispatcher("urlErreur").forward(request, response);
    			}
     
    			request.setAttribute("nom", name);
    			request.setAttribute("age", old);
    			getServletContext().getRequestDispatcher((String)params.get("urlResponse")).forward(request,response);
    	}
     
    }
    et puis 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>
    et le compilateur m'envoie méchemment et surtout injustement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    java.lang.IllegalArgumentException: Le chemin urlErreur ne commence pas par le caractère "/"
    	servet.personne.ServletPersonne.doGet(ServletPersonne.java:44)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    N'etes vous pas d'accord que c'est injuste!!

    Merci de voler a mon secours

  2. #2
    Membre averti Avatar de florentB
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2006
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2006
    Messages : 332
    Points : 441
    Points
    441
    Par défaut
    Salut.

    En 1er lieu, effectivement, les requestDispatcher prennent un / en 1er caractère. Hors toi, tu lui passe urlErreur.

    En 2ème, tu passe urlErreur. Hors, ceci doit correspondre à un url-pattern comme tu l'as défini par exemple avec ta servlet Personne.
    Tu dois définir une servlet dans ton web.xml qui sera appelée lorsque tu fera l'appel au requestDispatcher.

    Pour savoir comment fonctionne JSP, tu as la

Discussions similaires

  1. [CE10 Pro] Erreur Connexion SQL pour etats publiés
    Par L.nico dans le forum Connectivité
    Réponses: 1
    Dernier message: 09/12/2004, 17h16
  2. [Configuration] erreur 404, url demandée ?
    Par mikyfpc dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 9
    Dernier message: 08/10/2004, 09h37
  3. [wxWindows] Erreur de link pour ODBC
    Par ovh dans le forum wxWidgets
    Réponses: 3
    Dernier message: 28/01/2004, 15h38
  4. Check Url pour savoir si erreur 404 ou si le site existe
    Par Clément[Delphi] dans le forum Composants VCL
    Réponses: 2
    Dernier message: 07/08/2002, 13h49

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