2011-12-19 5 views
2

J'ai une application où j'ai trois pages jsp, depuis index.jsp, le contrôle passe à process.jsp et après le contrôle d'exécution va à result.jsp pour afficher les données. Mais je veux que, au lieu d'afficher les données dans result.jsp, le contrôle ira à une autre URL afin que l'url du destinataire obtienne les données demandées. c'est-à-dire: mon URL est 100.20.3.45:8085/myproject/index.jsp puis, après le traitement des données, je veux que le résultat devrait aller à une URL différente de mon même réseau, c'est-à-dire 100.20.3.46. Comment puis-je envoyer les données demandées à cette URL différente?rediriger vers une autre URL

Ex:

100.20.3.45:8085/myproject/index.jsp 

va à

100.20.3.45.8085/myproject/process.jsp 

après le contrôle du traitement ira à 100.20.3.46.

Comment puis-je envoyer ces données à une URL différente? comment s'appelle ce mécanisme?

Répondre

3

Cela s'appelle "rediriger". Il doit être atteint par HttpServletResponse#sendRedirect().

response.sendRedirect(url); 

Si vous souhaitez envoyer des données supplémentaires le long, vous aurez besoin envoyer comme paramètre de requête (s) dans une chaîne de requête, mais ils seront visibles dans l'URL dans la barre d'adresse du navigateur. Si ce n'est pas abordable, envisagez de le stocker dans un magasin de données partagé (base de données?), Puis de transmettre seul la clé unique.

Vous pouvez également laisser l'URL d'action <form> pointer directement sur cet hôte différent sans avoir besoin d'une JSP intermédiaire. Comme une autre alternative, vous pouvez également jouer pour proxy vous-même avec l'aide de par exemple URLConnection.


au Unrelated problème concret: ayant une logique de commande/d'affaires en est un bad practice JSPs. Je suggère de prendre le temps d'en apprendre davantage sur servlets.

+0

merci pour votre réponse mais par response.sendRedirect (""), seulement il redirige mais il ne contient aucune valeur à afficher, j'essaye avec ceci mais obtenir toute erreur: String nextJSP = "/100.20.3.46/cy /process.jsp "; Demander dispatcher dispatcher = getServletContext(). GetRequestDispatcher (nextJSP); dispatcher.forward (requête, réponse); – sujit

+0

Vous ne pouvez pas transférer vers un autre hôte/domaine. Vous pouvez au plus haut vers un contexte différent. Une vraie redirection est votre meilleur pari. – BalusC

+0

@BalusC .... ok ... Comment puis-je le faire? puis-je y parvenir par Webservice en Java? – sujit

Questions connexes