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 :

Gérer les redondances de renvois dues au refresh F5 sous IE?


Sujet :

Servlets/JSP Java

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 193
    Points : 47
    Points
    47
    Par défaut Gérer les redondances de renvois dues au refresh F5 sous IE?
    Bonjour,
    Ma question est simple comment faire pour éviter de retraiter une informations deja postées et qui sont repostées à cause d'un F5...
    Faut il le faire au niveau de ma Servlet et comment?
    Faut il le faire côté JS et la je ne pense pas qu'IE ou Moz repasse par la couche JS...
    Faut il bloquer la touche F5 = reponse non

    Merci de votre aide

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut
    Slt,
    Je sais pas si c'est exactement ce que tu veux, mais afin d'eviter de relancer un traitement long lors d'un F5 tu peux faire a la fin de ta servlet un sendRedirect vers une JSP qui n'effectue que de l'affichage à partir de données en session et aucun traitement.
    Le sendRedirect demande au navigateur client de repointer vers une autre URL en l'occurence la JSP , du coup lors du F5 le traitement n'est plus relancer seul l'affichage de la JSP est relancer.

    En esperant que cela t'aide
    UML avec VIOLET

  3. #3
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 193
    Points : 47
    Points
    47
    Par défaut
    Ma redirection ressemble à cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    //un fois le traitment du submité traité
    URL = "/jsp/planning.jsp?currentMonth=" + currentMonth;
    getServletContext().getRequestDispatcher(URL)
    				.forward(request, response);

  4. #4
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 193
    Points : 47
    Points
    47
    Par défaut
    Je redirige donc bien vers une JSP qui réalise l'affichage mais qui sert aussi à submité les saisies

  5. #5
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 193
    Points : 47
    Points
    47
    Par défaut
    Ou plus simple comment faire pour stocker les dernieres informations envoyées par l'user...
    Je vais simplifier au Max:
    J'envoie des chaines au serveurs qui ressemblent à :

    2006-12-19-AM&2006-12-19-PM& 2006-12-11-AM&2006-12-11-PM&2006-12-12-AM&2006-12-12-PM&2006-12-13-AM&2006-12-13-PM&2006-12-14-AM&


    Il me suffirait simplement de verifier que l'user me renvoit les meme chaines pour ne pas traiter mais comment stocker cette info au niveau de ma servlet?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut
    Oui le requestDispatcher te permet de rediriger vers une url mais sans faire d'aller retour client , on reste dans la meme requete ce qui fait qu'en faisant F5 il relance l'ensemble du traitement alors qu'avec un response.sendRedirect() tu demande au client d'aller pointer sur une JSP , donc tu renvoie l'ordre au IE de se connecter sur une JSP et la JSP renvoie le resultat a IE du coup en faisant F5 seul la JSP est appeler et non le traitement au prealable
    UML avec VIOLET

  7. #7
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 193
    Points : 47
    Points
    47
    Par défaut
    Est ce que je garde les informations de session?

  8. #8
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 193
    Points : 47
    Points
    47
    Par défaut
    Le problème avec le redirect c'est que je perd le contexte...
    Mes JSP sont contenu dans un repertoire /jsp et elles vont chercher les infos dans /css et /js
    Pour simplifier la vie mes servlets sont toutes à la racine et mon contexte est donc la racine de l'appli.
    Or quand je fais un reponse.redirect au lieu de d'un forward je redirige vers ma jsp directement donc dans /jsp/planning.jsp...resultat :
    -perte de mapping (web.xml)
    -perte des scripts js et styles css


    Comment faire en reprenant mon idée plus haut?

  9. #9
    Membre actif Avatar de MicroPuce
    Inscrit en
    Mai 2004
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 262
    Points : 212
    Points
    212
    Par défaut
    Salut,
    Il me suffirait simplement de verifier que l'user me renvoit les meme chaines pour ne pas traiter mais comment stocker cette info au niveau de ma servlet?
    Si tu stockes la derniere chaine recue dans la session, tu pourras comparer avec la nouvelle que tu recois, si c'est la même, alors....
    Sinon, je pense que tu peux peut-être aussi le traiter coté client avec du javascript (l'un n'empeche pas l'autre )
    Or quand je fais un reponse.redirect au lieu de d'un forward je redirige vers ma jsp directement donc dans /jsp/planning.jsp...resultat :
    -perte de mapping (web.xml)
    -perte des scripts js et styles css
    Là, j'comprends poas trop, que tu perdes les attributs de la requete, je peux comprendre mais tes .js et css????
    A pluche

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut
    Citation Envoyé par petozak
    Le problème avec le redirect c'est que je perd le contexte...
    Mes JSP sont contenu dans un repertoire /jsp et elles vont chercher les infos dans /css et /js
    Pour simplifier la vie mes servlets sont toutes à la racine et mon contexte est donc la racine de l'appli.
    Or quand je fais un reponse.redirect au lieu de d'un forward je redirige vers ma jsp directement donc dans /jsp/planning.jsp...resultat :
    -perte de mapping (web.xml)
    -perte des scripts js et styles css


    Comment faire en reprenant mon idée plus haut?
    Je comprend pas non plus comment tu peux perdre le context !!
    UML avec VIOLET

  11. #11
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 193
    Points : 47
    Points
    47
    Par défaut
    Mon appli ressemble à ca:

    Mon Appli
    |->jsp
    |->css
    |->js

    Mes servlets sont à la racine donc quand je fais appelle à mes JSP à partir de ma Servlet mon "contexte" (le lieu ou je me trouve) c'est la racine ok?

    Voila le mapping de ma servlet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <servlet-mapping>
    		<servlet-name>WorkingCalendar</servlet-name>
    		<url-pattern>/ServletAgenda</url-pattern>
    </servlet-mapping>
    Donc si je redirige vers mon rep de JSP je serais à un niveau = -1 et donc je ne retrouverais plus mes CSS , mes JS...

    Je peux feinter en faisant 2 JSP jumelles mes pointants sur un niveau 0 quand au niveau de la racine et à un niveau +1 si dans mon rep JSP...Mais c'est moche...

  12. #12
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 193
    Points : 47
    Points
    47
    Par défaut
    Mon appli ressemble à ca:

    Mon Appli
    |->jsp
    |->css
    |->js

    Mes servlets sont à la racine donc quand je fais appelle à mes JSP à partir de ma Servlet mon "contexte" (le lieu ou je me trouve) c'est la racine ok?

    Voila le mapping de ma servlet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <servlet-mapping>
    		<servlet-name>WorkingCalendar</servlet-name>
    		<url-pattern>/ServletAgenda</url-pattern>
    </servlet-mapping>
    Donc si je redirige vers mon rep de JSP je serais à un niveau = -1 et donc je ne retrouverais plus mes CSS , mes JS...

    Je peux feinter en faisant 2 JSP jumelles mais pointant sur un niveau 0 quand elle esr au niveau de la racine et à un niveau +1 si elle est dans mon rep JSP...Mais c'est moche...et pas maintenable

  13. #13
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 193
    Points : 47
    Points
    47
    Par défaut
    C'est pas tres jolie mais bon je vais gerer ca avec l'objet session

  14. #14
    Membre actif Avatar de MicroPuce
    Inscrit en
    Mai 2004
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 262
    Points : 212
    Points
    212
    Par défaut
    Euhhhh...
    Pas tout compris moi???
    Tes servlets sont à la racine, okay (c'est juste le mapping, mais bon) et tes jsp sont dans un dossiers jsp, ça marche.
    Dans tes servlets, tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ...getRequestDispatcher("/jsp/maPage.jsp");
    Et dans ta JSP, tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <link ... href="../css/style.css"... />
    J'comprends pos du tout ton souci

  15. #15
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 193
    Points : 47
    Points
    47
    Par défaut
    La premiere fois ou j'entre dans l'appli , une servlet d'authentification me place à la racine.
    Mes jsp bien qu'etant dans le rep /jsp sont dans le contexte racine d'ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <link href="css/site.css" rel="stylesheet" type="text/css" media="all">
    <SCRIPT LANGUAGE="JavaScript" SRC="js/WorkingCalendar.js"></SCRIPT>
    <script language="javascript" src="js/nav.js"></script>
    <script language="javascript" src="js/functions.js"></script>
    Or avec un redirect , tu me replaces cette fois dans le rep JSP or la ma jsp va chercher les fichiers dans css/site.css pensant qu'elle est dans la racine alors qu'elle a été redirigée dans jsp----> perte de contexte
    ---> pas de css
    --->pas de js
    --->Mapping web.xml fichu

  16. #16
    Membre actif Avatar de MicroPuce
    Inscrit en
    Mai 2004
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 262
    Points : 212
    Points
    212
    Par défaut
    La premiere fois ou j'entre dans l'appli , une servlet d'authentification me place à la racine.
    Mes jsp bien qu'etant dans le rep /jsp sont dans le contexte racine
    Sorry, mais alors là, ch'uis largué : comprends rien de rien à ton fonctionnement
    Bonne chance

Discussions similaires

  1. [D5][SQL Server] Conserver des images dans la BDD
    Par FONKOU dans le forum Bases de données
    Réponses: 8
    Dernier message: 08/06/2008, 19h58
  2. Fusion de lignes de tables en éliminant les redondances
    Par MinsK dans le forum Algorithmes et structures de données
    Réponses: 12
    Dernier message: 22/04/2004, 09h21
  3. Gérer les clics sur les boutons
    Par cyberlewis dans le forum Windows
    Réponses: 4
    Dernier message: 08/02/2004, 15h34
  4. Comment gérer les espaces blancs?
    Par Lambo dans le forum XML/XSL et SOAP
    Réponses: 10
    Dernier message: 16/05/2003, 09h44
  5. gérer les jpg dans une fenetre directdraw???
    Par Anonymous dans le forum DirectX
    Réponses: 1
    Dernier message: 14/06/2002, 13h39

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