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

Taglibs Java Discussion :

Application Test du modele MVC


Sujet :

Taglibs 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 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
    38
     
     
    <?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
    43
    44
     
     
    <%@ 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
    32
    33
     
     
    <%@ 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
    27
     
    <%@ 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
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
     
    public class ServletPersonne extends HttpServlet {
     
    	//parametre d'instance
     
    	private String urlErreurs=null;
    	private ArrayList erreursInitialisation=new ArrayList<String>();
    	private String[] parametres={"urlFormulaire","urlReponse"};
    	private Map params=new HashMap<String,String>();
     
    	//la méthode [init] exécutée au chargement initial de la servlet
     
    	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
    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 de bien vouloir m'aider.

Discussions similaires

  1. Un application avec les servlets Respectant le Modele MVC
    Par lyes_djaml dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 24/01/2011, 00h18
  2. ERREUR HTTP 404 Dans Une Application Test du modele MVC
    Par yassine_3 dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 21/07/2010, 11h35
  3. Application du modele MVC
    Par Clorish dans le forum Développement Web en Java
    Réponses: 0
    Dernier message: 20/07/2009, 10h16
  4. [Design Pattern]Respecter le modèle MVC
    Par etiennegaloup dans le forum Général Java
    Réponses: 2
    Dernier message: 16/10/2005, 12h00
  5. [Design Pattern] Modele MVC
    Par unNew dans le forum Général Java
    Réponses: 27
    Dernier message: 01/09/2005, 00h37

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