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 :

jsp:include vers une servlet contenant sendRedirect


Sujet :

Servlets/JSP Java

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 108
    Points : 65
    Points
    65
    Par défaut jsp:include vers une servlet contenant sendRedirect
    Bonjour,

    J'ai ma page index.jsp contenant l'include suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <jsp:include page="/contenu/foo/bar.html"/>
    Et aussi une servlet est configurée avec le mapping suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <url-pattern>/contenu/*</url-pattern>
    Donc la servlet est appelée au moment de l'incude qui figure dans la page index.jsp

    Quand ma servlet contient le code suivant dans son doGet:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    response.getWriter().println("hello");
    J'obtient bien hello sur ma page index.jsp
    Par contre, lorsque je mets ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    response.sendRedirect(lien);
    La variable lien contient bien une url valide mais rien n'est renvoyé vers le include...

    Est-ce impossible d'utiliser sendRedirect dans une servlet qui est appelée lors d'un jsp:include?

    merci bien, car là c'est la galère!

  2. #2
    Membre éclairé Avatar de Lorantus
    Homme Profil pro
    Consultant développeur indépendant / Java/VB/C(++)/ObjectPal
    Inscrit en
    Août 2007
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant développeur indépendant / Java/VB/C(++)/ObjectPal

    Informations forums :
    Inscription : Août 2007
    Messages : 599
    Points : 882
    Points
    882
    Par défaut
    permet d'inclure une JSP dans une JSP. Il ne permet pas de récupérer un resultat d'une requête.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    response.sendRedirect(String)
    permet de diriger une nouvelle requête (comme le code HTTP 304 avec en paramètre, la valeur Location).

  3. #3
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 108
    Points : 65
    Points
    65
    Par défaut
    oui c'est vrai,

    de plus:

    permet aussi d'inclure de résultat d'une servlet, si l'url passée en paramètre en cible une.

    Et donc ce que je souhaite faire c'est mettre un sendRedirect lors du traitement de ladite servlet, mais il me semble que c'est impossible..?

  4. #4
    Membre éclairé Avatar de Lorantus
    Homme Profil pro
    Consultant développeur indépendant / Java/VB/C(++)/ObjectPal
    Inscrit en
    Août 2007
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant développeur indépendant / Java/VB/C(++)/ObjectPal

    Informations forums :
    Inscription : Août 2007
    Messages : 599
    Points : 882
    Points
    882
    Par défaut
    SendRedirect dans le servlet appelé.

    Et un après l'include du servlet ? Cela donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <jsp:include ..../>
    <% return; %>

  5. #5
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 108
    Points : 65
    Points
    65
    Par défaut
    Ok!
    Non effectivement ce n'est pas un sendRedirect qu'il faudrait, mais plutôt quelque chose comme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.getRequestDispatcher(path).include(request, response);
    sauf que le path en question n'est pas forcément un chemin relatif vers une jsp mais peut être tout et n'importe quoi ex:

    www.any.com/path/img.jpg
    /components/page.jsp
    /toto/titi.xml
    super.html

  6. #6
    Membre éclairé Avatar de Lorantus
    Homme Profil pro
    Consultant développeur indépendant / Java/VB/C(++)/ObjectPal
    Inscrit en
    Août 2007
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant développeur indépendant / Java/VB/C(++)/ObjectPal

    Informations forums :
    Inscription : Août 2007
    Messages : 599
    Points : 882
    Points
    882
    Par défaut

    sauf que le path en question n'est pas forcément un chemin relatif vers une jsp mais peut être tout et n'importe quoi
    J'ai presque envie de faire effecter cela, car c'est FAUX !

    Le "include" -et c'est le terme- inclus l'url -le flux sortant de l'url- pointée par le requestdispatcher, dans le flux de sortie de la jsp appelante (c'est aussi valable pour un servlet).

    Il faut donc faire attention, car le flux est ajouté au flux existant :
    imaginons que la JSP appelante est en text/html et que l'url pointée est en text/xml... que va faire le client ? html ? xml ?

    NON ! INCLUDE NE PERMET PAS DE FAIRE TOUT ET N IMPORTE QUOI !

  7. #7
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 108
    Points : 65
    Points
    65
    Par défaut
    Alors effectivement je me suis peut-être mal exprimé.

    Je dis que je souhaite avoir le même comportement qu'avec le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.getRequestDispatcher(path).include(request, response);
    Mais qu'en plus cela doit fonctionner avec toute type de path (et cela est impossible avec getRequestDispatcher, effectivement, puisque c'est une méthode pour obtenir uniquement une jsp présente dans la webapp).

Discussions similaires

  1. Réponses: 3
    Dernier message: 01/07/2009, 18h55
  2. [JSP] Upload vers une base de donnee oracle
    Par Invité dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 15/05/2006, 18h11
  3. [JSP] [Servlet] Exit d'une page JSP ou d'une servlet
    Par boutss dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 27/02/2006, 07h50
  4. Redirection vers une page contenant celle qui redirectionne
    Par Rémiz dans le forum Balisage (X)HTML et validation W3C
    Réponses: 9
    Dernier message: 16/11/2005, 14h38
  5. Transfert d'un objet d'une JSP vers une Servlet
    Par biohazard dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 21/06/2004, 16h51

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