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 :

[SERVLET] Redirection [FAQ]


Sujet :

Servlets/JSP Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 13
    Par défaut [SERVLET] Redirection
    Bonjour,

    J'ai créé un Servlet et je souhaite pourvoir faire des redirections.
    Ex : je suis sur index.html et j'appelle page1.html
    La servlet prends la main et je peux effectuer des traitements avant d'afficher la page1. Si j'ai une erreur dans mes traitements, je souhaite pouvoir me rediriger vers une page d'erreur par exemple (erreur.html).

    J'ai bien envie de faire ceci dans ma servlet (dans le doGet ou doPost) :
    (HttpServletRequest)xxx.sendRedirect ("erreur.html");

    Mais le PB, c'est que le doGet et le doPost sont appelés tout le temps (lors de chergement des images ...etc) => ca plante.

    Quelqu'un a une idée ? Merci.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2004
    Messages : 85
    Par défaut
    Essaie ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    getServletContext().getRequestDispatcher(maDestination).forward(
                    request, response)
    ou ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    response.sendRedirect(maDestination);
    Je ne sais pas si ça ira mieux, mais essaie...

    A+

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 13
    Par défaut
    2 points :
    -----------

    1 - Mon PB est bien que le doGet est appelé systématiquement même au chargement d'une image donc si je fais un sendRedirect (...) alors que c'est une image, ça plante.

    2 - Quelle est la différence entre :
    - getServletContex().getRequestDispatcher(maDestination).forward(request, response)
    - response.sendRedirect(maDestination);

    Merci encore

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2004
    Messages : 85
    Par défaut
    Selon javadoc :
    http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/servlet/http/HttpServletResponse.html
    http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/servlet/RequestDispatcher.html
    Il me semble que la première chose est que la response.sendRedirect peut contenir des chemins relatifs que solution doit avoir un chemin absolu.

    Autre chose, en passant par le requestdispatcher, ça permet à une servlet d'effectuer des opérations préliminaire pour générer la response.

    Sinon, ce que tu as comme erreur est une IllegalStateException ? Si c'est le cas, juste une petite question, est-ce que tu utilises des taglibs perso dans ta page JSP ?

    A+

  5. #5
    Membre émérite
    Avatar de RanDomX
    Profil pro
    sans
    Inscrit en
    Mars 2003
    Messages
    579
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mars 2003
    Messages : 579
    Par défaut
    le request dispatcher fait suivre la requete en interne ds le conteneur: pas d'aller retour avec le navigateur. l'adresse ne change pas ds le navigateur.

    le sendRedirect envoie un ordre au navigateur, qui lui fait une requete vers la nouvelle adresse : un aller retour avec le navigateur.
    l'adresse change ds le navigateur.

  6. #6
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2002
    Messages : 652
    Par défaut
    Mais le PB, c'est que le doGet et le doPost sont appelés tout le temps (lors de chergement des images ...etc) => ca plante.
    Peut tu nous montrer la déclaration de ton servlet dans le fichier web.xml ?

    En temps normal, sauf cas exceptionnels, les images et autres documents statiques ne sont pas à inclure dans les patterns des servlet.

  7. #7
    Membre émérite
    Avatar de RanDomX
    Profil pro
    sans
    Inscrit en
    Mars 2003
    Messages
    579
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mars 2003
    Messages : 579
    Par défaut
    Il te faut un serveur de contenu statique de type Apache, si tu veux éviter tout probleme.

Discussions similaires

  1. servlet+redirection avec un form
    Par supernicoco dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 10/10/2008, 18h52
  2. [Servlet] Redirection et CSS
    Par Invité dans le forum Servlets/JSP
    Réponses: 11
    Dernier message: 10/05/2007, 17h10
  3. [servlet redirection jsp]
    Par agougeon dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 23/01/2006, 17h53
  4. [Servlets] Redirection HTTP vers une url absolue
    Par Dinaïz dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 18/11/2005, 21h56
  5. [servlet] Redirection
    Par SEMPERE Benjamin dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 20/09/2004, 15h31

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