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->servlet->redirection


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    691
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 691
    Par défaut JSP->servlet->redirection
    Bonjour,

    Voila j'ai une page JSP avec un formulaire.

    Ce que je voudrais c'est envoyer le formulaire a une servlets qui redirige directement soit vers le formulaire si erreur soit vers une autre page.

    Le hic c'est que je sais pas trop comment m'y prendre.
    Quand je redirige depuis la servlet ca change pas l'url et j'ai des problemes apres.

    Alors si quelqu'un pouvait me donner une piste ou un tutoriel bien expliqué merci.

  2. #2
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Salut

    Dans ta JSP
    method="post" action="taServlet"

    Dans ta Servlet,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    getServletContext().getNamedDispatcher( "VueTonFormulaire" ).forward( request, response );

  3. #3
    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
    Billets dans le blog
    1
    Par défaut
    Il serait préférable de passer par un RequestDispatcher dans la servlet, comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    request.getRequestDispatcher("/chemin/relatif/maPage.jsp").forward(request, response);
    Pour la page, tu références la servlet dans la balise <form> attribut "action"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <form action="<%=request.getContextPath()%>/laServlet" methode="POST">
    ... les champs <input> et autres ...
    </form>
    et le lien dans le web.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ...
    <servlet>
      <servlet-name>laServlet</servlet-name>
      <servlet-class>le.package.LaServlet</servlet-class>
     </servlet>
     
     <servlet-mapping>
      <servlet-name>laServlet</servlet-name>
      <url-pattern>/laServlet</url-pattern>
     </servlet-mapping>
    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    691
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 691
    Par défaut
    Donc en fait si je resume (à ma facon je dirais)


    Dans ma servlet je fais tout les traitements que je veux, puis au moment de la redirection je fais ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    request.getRequestDispatcher("/chemin/relatif/maPageOK.jsp").forward(request, response);
     
    OU
     
    request.getRequestDispatcher("/chemin/relatif/maPageNOK.jsp").forward(request, response);
    Mais est-ce que ca propage le formulaire? (Je ne pense pas mais je prefere demander)

    Ma servlet ne contiendra alors aucun code html.
    Et si je vois bien l'effet l'url apparaitra pendant un laps de temps tres tres ... court avant de rediriger vers la page voulu.

  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
    Billets dans le blog
    1
    Par défaut
    Tu propages les données du formulaire puisqu'il s'agit du même request.
    Par contre, si tu veux faire une redirection, il ne faut pas utiliser le RequestDispatcher mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    response.sendRedirect("url à appeler");
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    691
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 691
    Par défaut
    Autre question.

    Et si je veux passer une variable lors de ma redirection, quels sont les meilleurs options? Et comment faire?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Redirection de JSP vers servlet
    Par janyoura dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 01/10/2013, 15h13
  2. Servlet et redirection sur une JSP via une URI
    Par xenoise dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 25/05/2012, 10h49
  3. Réponses: 1
    Dernier message: 20/07/2006, 17h46
  4. [JSP]remplir et envoyer un vecteur d'une jsp à une servlet
    Par moeeez dans le forum Servlets/JSP
    Réponses: 10
    Dernier message: 31/05/2005, 09h51
  5. Réponses: 9
    Dernier message: 14/04/2005, 17h45

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