Bonjour à tous!
Je vais tenter d'être le plus clair possible. Je suis en train de faire un site utilisant l'architecture MVC. Lors de la navigation sur le site, je parle à mes servlets qui elles forward la requête à mes pages JSP. La plupart du temps où j'effectue des opérations, je passe d'une servlet à l'autre, par exemple: lors d'un login réussi (servlet Login), je fais un "response.sendRedirect" à une autre servlet (appellons là "Servlet1"), qui elle dispatch à page1.jsp. D'ici là, tout est beau.
Le problème est que je veux effectuer des opérations à l'aide de ma servlet Servlet1, mais toujours en restant dans la même jsp (dispatcher.forward) ET sans utiliser de POST. J'ai un lien dans cette page qui appelle ma servlet du genre: Servlet1?idNo=1&action=delete... Cela a pour effet de changer le chemin de la barre d'adresse pour: "http://localhost:8084/monsite/Servlet1?idNo=1&action=delete". Si j'avais utilisé un POST pour l'envoie des données, lors du refresh de la servlet, les paramètres dans la barre d'adresse auraient disparus. Mais je ne peux pas puisque cela m'empêche de faire des refresh de la page sans me faire harceler ("La page que vous tentez de voir contient des données POST...etc"). Donc, je dois passer les paramètres avec GET.
Alors... comment faire pour lors du retour de la réponse de ma servlet, vider les fameux paramètres de la barre d'adresse? Sans ça, si l'usager clique sur rafraîchir, il va envoyer de nouveau les params (idNo=1&action=delete)... puisque je n'ai pas changé de page! J'ai pensé placer ces valeurs dans le scope request directement, mais les valeurs envoyées sont dynamiques en fonction du lien choisi...
Je ne sais pas si vous me comprenez? Malgré tout, merci de m'avoir lu!
Partager