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 :

Empecher le rechargement d'une page


Sujet :

Servlets/JSP Java

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Empecher le rechargement d'une page
    Salut à tous, voilà mon problème, à chaque fois que je fais appel à une servlet envoyant des paramètres via un formulaire, la page sur laquelle je suis est rechargée, alors que je ne le souhaite pas du tout. ma servlet est là pour faire des traitements côtés serveur, et il n'est pas du tout nécessaire pour moi de recharger la page de départ.
    J'aimerais savoir, s'il existe une solution pour bloquer ce rechargement systématique des pages après un submit.
    Merci d'avance.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    376
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 376
    Points : 431
    Points
    431
    Par défaut
    Il est normal que ta page soit rechargée, vu que tu appelles une servlet qui "re-route" probablement sur ta page (me trompe-je ?).

    La meilleure façon pour ce genre de chose est d'utiliser Ajax, qui te permet de lancer des requêtes serveur a partir de javascript sans recharger ta page. Je ne connais pas bien, il faudrait vérifier que l'on peut poster les données d'un formulaire, ou alors "convertir" tes champs de formulaire en paramètres de ta requête (si c'est possible, donc pas de champ de type "file" par exemple).

    Une autre méthode, plus simple, mais plus "bidouillesque", serait d'insérer dans ta page une iframe (de 1*1 px par exemple, voire même 0*0 si ca marche), et de spécifier le nom de cette iframe dans le target de ton form. Ainsi, seule l'iframe (invisible) sera rechargée, et ton traitement sera fait. A noter que l'iframe n'est pas un élément standard de HTML, mais est supporté par tous les navigateurs graphiques récents.

  3. #3
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Je vois deux solutions :
    - utiliser une requête asynchrone en javascript (ajax) pour appeler ta servlet
    - effectuer le submit de ton formulaire vers une iframe cachée de ta page, et recopier les données de cette iframe dans ta page avec javascript (un peu bourrin, mais ça fonctionne bien)

    EDIT: trop tard

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    376
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 376
    Points : 431
    Points
    431
    Par défaut
    Une telle convergence d'esprits me laisse sans voix

  5. #5
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Tu l'as dit !
    On aurait voulu le faire, qu'on aurait pas fait mieux

  6. #6
    Membre averti Avatar de Philcmoi
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 666
    Points : 412
    Points
    412
    Par défaut
    Salut, question 1: As tu dans le code de ta servlet un request.setRequestDispatcher("ect/servlet/urlpointantsurlamemeservlet").forward(request,respond).
    Si Oui changes en
    request.setRequestDispatcher("/uneautrepageJSP.jsp").forward(request,respond).
    Tu peus faire autant de request.setRequestDispatcher("encoreuneautrepageJSP.jsp").forward(request,respond) suivant le traitement des request.getParameter("uneDonnée"). C'est comme ca que tu géreras le passage d'une page à une autre.
    A mon avis tu as un request.setRequestDispatcher("ect/servlet/urlpointantsurlamemeservlet").forward(request,respond).
    allez bonne chance.

  7. #7
    Membre averti Avatar de Philcmoi
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 666
    Points : 412
    Points
    412
    Par défaut
    Désolais rectification tu dois avoir dans ta servlet Memeservlet un request.getRequestDispatcher("/LaMêmepage.jsp").forward(request,response)
    et dans la page jsp (LaMêmepage.jsp) tu doit avoir
    <form action="ect/servlet/Memeservlet" method="get ou post">
    alors c a fait LaMêmepage.jsp ==> Memeservlet ==> LaMêmepage.jsp ==> Memeservlet. en fait voila pourquoi la meme page se recharge.
    il faut briser la chaine soit par <form action="ect/servlet/Autreservlet" method="get ou post">
    ou faire request.getRequestDispatcher("/UneAUtrePage.jsp").forward(request,response).

    Voila espérant t'avoir aider

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    376
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 376
    Points : 431
    Points
    431
    Par défaut
    Je crois que ce qu'il veut faire, c'est appeler sa servlet (par exemple en cliquant sur un bouton), sans recharger ni changer de page.

Discussions similaires

  1. Comment empecher le rechargement d'une page
    Par HAbroc dans le forum Langage
    Réponses: 2
    Dernier message: 28/06/2009, 07h03
  2. firefox : rechargement d'une page
    Par menuge dans le forum Firefox
    Réponses: 4
    Dernier message: 16/05/2006, 16h49
  3. comment éviter le rechargement d'une page?
    Par srikta dans le forum ASP
    Réponses: 2
    Dernier message: 13/04/2006, 10h54
  4. Rechargement d'une page après ouverture de deux popups
    Par petitmoosse dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 30/11/2005, 16h39
  5. Empecher l'affichage d'une page hors popup
    Par cyber6ou dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 23/10/2005, 18h49

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