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 :

Redirection de JSP vers servlet


Sujet :

Servlets/JSP Java

  1. #1
    Membre actif Avatar de janyoura
    Femme Profil pro
    étudiante ingénierie informatique
    Inscrit en
    Mars 2012
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante ingénierie informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 365
    Points : 279
    Points
    279
    Par défaut Redirection de JSP vers servlet
    Bonjour,
    J'ai une page JSP qui contient la liste des personnels dans un tableau, pour chaque personnel il y a un lien pour modifier , comme suit:
    listPers.jsp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td><a href="<c:url value="/EditPers.jsp?id=${personne.id_pers}"/>">Modifier</a></td>
    J'aimerai savoir comment faire au niveau de la servlet qui traite cette demande. c'est à dire comment faire au niveau du code de la servlet EditPers qui récupère l'id et affiche le formulaire edit.
    J'ai fais comme ceci mais ça ne marche pas la page /EditPers.jsp?id=X s'affiche directement sans passer par la servlet alors que ça doit passer par la servlet pour récuperer les données de la personne dont l'id = X
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    protected void doGet(HttpServletRequest request,
    			HttpServletResponse response) throws ServletException, IOException {
     
    		// 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.getPathInfo();
     
    		if (méthode.equals("get") && action.equals("/EditPers")) {
    			System.out.println("test servlet helloooo");
    			// présentation formulaire ajout / modification d'une personne
    			doEditPersonne(request, response);
    			return;
    		}
    Merci
    "Scientists dream about doing great things. Engineers do them.”

    La réussite après tant de travail est un sentiment à vivre

    Si ton message est résolu, il y a un bouton qui est fait pour ça :
    Il se trouve tout en bas de la conversation !

    N'oublie pas que si ce message t'as aidé, tu peux voter pour lui en utilisant

  2. #2
    Membre éclairé Avatar de Ceddoc
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2009
    Messages : 493
    Points : 698
    Points
    698
    Par défaut
    Tu as bien définit que la Servlet devait intercepté l'url en question? Avec ou dans le fichier xml qui attribut une servlet à une url (je me souviens plus du nom désolé), ou quelque chose dans ce gout la?

  3. #3
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    /EditPers.jsp et /EditPers ce n'est pas la même chose. Le premier pointe sur une JSP, le deuxième, a priori, sur ta servlet. dans le c:url tu dois mettre l'url de ta servelt, pas l'url de ta jsp, si tu veux que ça passe par la servlet.

  4. #4
    Membre actif Avatar de janyoura
    Femme Profil pro
    étudiante ingénierie informatique
    Inscrit en
    Mars 2012
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante ingénierie informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 365
    Points : 279
    Points
    279
    Par défaut
    oui j'ai effectué ce qui est necessaire au niveau du web.xml
    j'ai essayé avec les deux EditPers.jsp et EditPers.. mais le meme resultat.
    le code de la servlet est-il correcte?
    merci
    "Scientists dream about doing great things. Engineers do them.”

    La réussite après tant de travail est un sentiment à vivre

    Si ton message est résolu, il y a un bouton qui est fait pour ça :
    Il se trouve tout en bas de la conversation !

    N'oublie pas que si ce message t'as aidé, tu peux voter pour lui en utilisant

  5. #5
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    difficile à dire, on a pas tous le code. Comment es-tu sur de ne pas passer dans la servlet?

  6. #6
    Membre actif Avatar de janyoura
    Femme Profil pro
    étudiante ingénierie informatique
    Inscrit en
    Mars 2012
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante ingénierie informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 365
    Points : 279
    Points
    279
    Par défaut
    Bon j'ai trouvé le problème, maintenant ça passe à la servlet mais doEditPersonne() renvoie une erreur. comment puis-je savoir l'erreur, parce que la console n'affiche pas c'est quoi exactement.

    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
    protected void doGet(HttpServletRequest request,
    			HttpServletResponse response) throws ServletException, IOException {
     
    		// 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.getPathInfo();
    		System.out.println("liste helloooo");
     
    		// présentation formulaire ajout / modification d'une personne
    		doEditPersonne(request, response);
    		return;
     
    	}
     
    	// modification / ajout d'une personne
    	private void doEditPersonne(HttpServletRequest request,
    			HttpServletResponse response) throws ServletException, IOException {
    		// on récupère l'id de la personne
    		int id = Integer.parseInt(request.getParameter("id"));
    		System.out.println("l'identifiant du personnel est " + id);
     
    		// ajout ou modification ?
    		Personnel personne = null;
    		if (fDAO.findPersonnel(id) != null) {
    			// modification - on récupère la personne à modifier
    			personne = fDAO.findPersonnel(id);
    			System.out.println("le personnel est " + personne);
    		} else {
    			// ajout - on crée une personne vide
    			personne = new Personnel();
     
    		}
    		// on met l'objet [Personne] dans le modèle de la vue [edit]
    		request.setAttribute("erreurEdit", "");
    		request.setAttribute("id", personne.getId_pers());
     
    		request.setAttribute("prenom", personne.getprenon());
    		request.setAttribute("nom", personne.getNom());
    		Date dateNaissance = personne.getnaissance();
    		if (dateNaissance != null) {
    			request.setAttribute("dateNaissance", new SimpleDateFormat(
    					"dd/MM/yyyy").format(dateNaissance));
    		} else {
    			request.setAttribute("dateNaissance", "");
    		}
    		// request.setAttribute("marie", personne.getMarie());
    		// request.setAttribute("nbEnfants", personne.getNbEnfants());
    		// affichage de la vue [edit]
    		getServletContext()
    				.getRequestDispatcher((String) params.get("urlEdit")).forward(
    						request, response);
    	}
    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
    liste helloooo
    l'identifiant du personnel est 1
    le personnel est modele.Personnel@170abd4f
    sept. 25, 2013 3:35:18 PM org.apache.catalina.core.StandardWrapperValve invoke
    Grave: "Servlet.service()" pour la servlet EditPers a généré une exception
    java.lang.NullPointerException
    	at servlets.ModifPersonnel.doEditPersonne(ModifPersonnel.java:113)
    	at servlets.ModifPersonnel.doGet(ModifPersonnel.java:73)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    	at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
    	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1001)
    	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
    	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    	at java.lang.Thread.run(Unknown Source)
    "Scientists dream about doing great things. Engineers do them.”

    La réussite après tant de travail est un sentiment à vivre

    Si ton message est résolu, il y a un bouton qui est fait pour ça :
    Il se trouve tout en bas de la conversation !

    N'oublie pas que si ce message t'as aidé, tu peux voter pour lui en utilisant

  7. #7
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par janyoura Voir le message
    comment puis-je savoir l'erreur, parce que la console n'affiche pas c'est quoi exactement.
    Ben pourtant, elle te dit exactement quelle est ton erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    java.lang.NullPointerException
    	at servlets.ModifPersonnel.doEditPersonne(ModifPersonnel.java:113)
    Donc tu va à la ligne indiquée et tu corrige l'erreur.

  8. #8
    Membre éclairé Avatar de Ceddoc
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2009
    Messages : 493
    Points : 698
    Points
    698
    Par défaut
    A mon avis tu devrais vérifier que n'est pas null avant d'appeler dessus.

  9. #9
    Membre actif Avatar de janyoura
    Femme Profil pro
    étudiante ingénierie informatique
    Inscrit en
    Mars 2012
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante ingénierie informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 365
    Points : 279
    Points
    279
    Par défaut
    Citation Envoyé par Ceddoc Voir le message
    A mon avis tu devrais vérifier que n'est pas null avant d'appeler dessus.
    et comment vérifier?
    merci
    "Scientists dream about doing great things. Engineers do them.”

    La réussite après tant de travail est un sentiment à vivre

    Si ton message est résolu, il y a un bouton qui est fait pour ça :
    Il se trouve tout en bas de la conversation !

    N'oublie pas que si ce message t'as aidé, tu peux voter pour lui en utilisant

  10. #10
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (params.get("urlEdit")!=null){
       // c'est bon
    }

Discussions similaires

  1. liaison jsp vers servlet vers jsp
    Par wafabrj dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 13/06/2012, 16h07
  2. envoi de donnée de jsp vers servlet
    Par alen22 dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 05/04/2011, 22h04
  3. Transfère objet JSP vers Servlet
    Par yakuzayang dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 02/02/2011, 15h04
  4. lien jsp vers servlet avec passage de parametre
    Par cool dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 15/05/2008, 22h59
  5. [Debutant] Données nulles de JSP vers Servlet method Post
    Par tck-lt dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 18/12/2006, 11h53

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