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 HTTP 404 Dans Une Application Test du modele MVC


Sujet :

Servlets/JSP Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Février 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 7
    Points : 5
    Points
    5
    Par défaut ERREUR HTTP 404 Dans Une Application Test du modele MVC
    Bonjour,
    Je suis debutant sur J2ee ,j'essaye de developper une application basée sur le MVC.
    j'ai developper mes modeles "Formulaire.jsp,Reponse.jsp,Erreurs.jsp",puis j'ai ma servlet ServletPersonne.java,et mon fichier web.xml avec l'url-pattern"/main".mais ca me donne une erreur
    type Rapport d'état

    message /GET/personne1/main

    description La ressource demandée (/GET/personne1/main) n'est pas disponible.
    Voici mon code
    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
     
    <?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> mvc-personne-01 </display-name>
    	<!-- ServletPersonne -->
    	<servlet>
    	<servlet-name>ServletPersonne</servlet-name>
    	<servlet-class>istia.it.servlet.personne.ServletPersonne</servlet-class>
     
    	<init-param>   
    	<param-name> urlReponse</param-name>
    	<param-value> /WEB-INF/vues/reponse.jsp   </param-value>
    	</init-param>
     
    	<init-param>   
    	<param-name> urlErreurs</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>
     
    	<!-- mapping ServletPersonne -->
     
    	<servlet-mapping>
    	<servlet-name>personne</servlet-name>
    	<url-pattern>/main</url-pattern>
    	</servlet-mapping>
     
    	<welcome-file-list>
    		<welcome-file>index.html</welcome-file>
    	</welcome-file-list>
    </web-app>
    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
    39
    40
    41
    42
    <%@ 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">
    <%
    //on recupere les donnes du modele
    String nom=(String)request.getAttribute("nom");
    String age=(String)request.getAttribute("age");
    %>
    <title>personne-formulaire</title>
    </head>
    <body>
    <body>
     <center>
     <h2>Personne - formulaire</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>
     <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>
     <input type="hidden" name="action" value="validationFormulaire">
     </form>
     </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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    <%@ 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 recupere les donnes du modele
    String nom=(String)request.getAttribute("nom");
    String age=(String)request.getAttribute("age");
     
    %>
     
     
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>personne</title>
    </head>
    <body>
    <h2>Personne - réponse</h2>
    <hr>
     <table>
     <tr>
     <td>Nom</td>
     <td><%= nom %>
     </tr>
     <tr>
     <td>Age</td>
     <td><%= age %>
     </tr>
     </table>
    </body>
    </html>
    Erreurs.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
    <%@ 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">
    <%@ page import="java.util.ArrayList" %>
     
    <%
        ArrayList erreurs=(ArrayList)request.getAttribute("erreurs");
    %>
     
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
    </head>
    <body>
    <h2>Les erreurs suivantes se sont produites</h2>
    <ul>
     <%
     for(int i=0;i<erreurs.size();i++)
     {
     out.println("<li>" + (String) erreurs.get(i) + "</li>\n");
     }//for
     %>
     </ul>
    </body>
    </html>
    et puis mon controleurs ServletPersonne
    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
    public void init() throws ServletException
    	{
    		//on récupère la configuration de l'application web, c.a.d. le contenu du fichier [web.xml]
    		ServletConfig Config=getServletConfig();
    		//on récupère les paramètres urls d'initialisation de la servlet dont les noms sont définis dans le tableau
    		//[paramètres] de la ligne 9
    		String valeur=null;
    		for(int i=0;i<parametres.length;i++)
    		{// valeur du paramètre url
    			valeur=Config.getInitParameter(parametres[i]);
    			//parametre present?
    			if(valeur==null){
    				// on note  l'erreur
    				 erreursInitialisation.add("Le paramètre ["+parametres[i]+"] n'a pas été initialisé");
    		                   }
    			else
    			{
    				//on memorise la valeur du parametre url
    				params.put(parametres[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é");
    						}
    			}
    	
    	//la méthode [doGet] appelée par le serveur web lorsqu'une requête de type GET a été faite à l'application
    	
    	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);
    			return;
    		}
     
    		// : on récupère la méthode [get] ou [post] que le client a utilisée pour faire sa requête
    		String methode=request.getMethod().toLowerCase();
    		/*on récupère la valeur du paramètre [action] de la requête. Rappelons que dans notre application seule la
    		requête n° 2 [POST /personne1/main] a le paramètre [action]. Dans cette requête, il a la valeur [validationFormulaire].*/
    		String action=request.getParameter("action");
    		/*si le paramètre [action] n'est pas présent, on lui affecte la valeur " init ". Ce sera le cas lors de la requête
    		initiale n° 1 [GET /personne1/main].*/
    		if(action==null)
    		{
    			action="init";
    		}
    		//execution : traitement de la requête n° 1 [GET /personne1/main].
    		if(methode.equals("get") && action.equals("init"))
    		{
    			doInit(request,response);
    			return;
    		}
    		//traitement de la requête n° 2 [POST /personne1/main].
    		if(methode.equals("post") && action.equals("ValidationFormulaire"))
    		{
    			//validation du forlmualire de saisie
    			doValidationFormulaire(request,response);
    		}
    		//autre cas.si on n'est pas dans l'un des deux cas précédents, on fait comme si on était dans le cas n° 1
    		doInit(request,response);
    	}
    	
    	//la méthode [doInit] traite l'action n° 1 [GET /personne1/main]
     
    	 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;	 
    	}
    	 //la méthode [doValidationFormulaire] traite l'action n° 2 [POST /personne1/main] avec les paramètres
    	 //postés [txtNom, txtAge, action].
     
    	void doValidationFormulaire(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException
    	{
    		String nom = request.getParameter("txtNom");
    		String age = request.getParameter("txtAge");
    		 // vérification des paramètres
    		 ArrayList<String> erreursSaisie = new ArrayList<String>();
    		 // le nom doit être non vide
    		 nom = nom.trim();
    		 if (nom.equals(""))
    		 erreursSaisie.add("Le champ [nom] n'a pas été rempli");
    		 // l'âge doit être un entier >=0
    		 if (!age.matches("^\\s*\\d+\\s*$"))
    		 erreursSaisie.add("Le champ [age] est erroné");
    		 // des erreurs dans les paramètres ?
    		 if (erreursSaisie.size() != 0) {
    		 // on envoie la page d'erreurs
    		 request.setAttribute("erreurs", erreursSaisie);
    		 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;
    		 }
     
    	//doPost
    	public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException, ServletException
    	{
    		doGet(request,response);
    	}
     
    }

    Merci de bien vouloir m'aider

  2. #2
    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
    Dsl pour la réponse tardive, ton erreur est là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <servlet>
    	<servlet-name>ServletPersonne</servlet-name>
    , et dans l'appel tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <servlet-mapping>
    	<servlet-name>personne</servlet-name>

  3. #3
    Futur Membre du Club
    Inscrit en
    Février 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Merci Pour ta reponse,mais ca ne marche toujours pas.
    Il me donne la meme erreur.

  4. #4
    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
    On est bien d'accord que le servlet-name doit être le même dans les 2 côtés c'est bien ça?
    -Et puis je ne vois pas dans ton formulaire l'action à appeler?
    -T'as 2 balises ouvrantes "body".
    Fais un peu le menage dans ton code

  5. #5
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par yassine_3 Voir le message
    Merci Pour ta reponse,mais ca ne marche toujours pas.
    Il me donne la meme erreur.
    Tu as arrêté et redémarré le serveur ?

Discussions similaires

  1. Application Test du modele MVC
    Par yassine_3 dans le forum Taglibs
    Réponses: 1
    Dernier message: 19/07/2010, 12h49
  2. Erreur de compilation dans une application .net
    Par etincelle01 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 21/04/2010, 07h36
  3. Gérer les cookies dans une application utilisant HTTP
    Par bruce-willis dans le forum Composants VCL
    Réponses: 2
    Dernier message: 16/03/2009, 14h32
  4. Réponses: 1
    Dernier message: 11/03/2009, 15h09
  5. Réponses: 7
    Dernier message: 01/06/2005, 11h48

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