Comment puis-je envoyer la requête http à un autre servlet
Dans mon dossier de projet,Nous avons 2 fichiers java sous ContextPath/WEB-INF/Classes/*.class
noms sont App1.class
et App2.class
Si je veux Courir App1.class
,Seulement j'ai besoin de déclencher l'URL dans le navigateur.
http://localhost:8080/Mapping/App1
de la même manière,si vous voulez déclencher App2.class
,utilisez le lien suivant
http://localhost:8080/Mapping/App2
Je veux déclencher App2
de App1
,signifie que Si vous déclenchez App1
avec l'URL correspondante dans le navigateur,Il sera déclencher App2
.
Je ne veux pas toute réponse aussi.
Comment puis-je faire cela.
quelqu'un peut m'aider.
Grâce.
- Sont
App1
etApp2
servlets?
Vous devez vous connecter pour publier un commentaire.
Considérant
App1
etApp2
sont configurés comme des servlets dans votreMapping
de l'application web; vous pouvez faire usage d'unRequestDispatcher
àforward()
la demande deApp2
. Cela arriverait côté serveur, c'est à dire le navigateur recevoir la réponse, comme si sa vient deApp1
.S'il vous plaît, notez
App1
ne doit pas avoir commis une réponse avant de faire laforward()
, sinon vous obtiendrez unIllegalStateException
.Référence :
http://docs.oracle.com/javaee/7/api/javax/servlet/RequestDispatcher.html
App3
deApp2
.puis-je faire comme ceci.enfin, les flux deApp1
-->App2
-->App3
.App3
est un autre nom du packageExternal
.La déclaration suivante est-elle de droite. ` RequestDispatcher rd = request.getRequestDispatcher ("/Externe App3");`isForwardReqd()
.External.App3
doit être mappé sur un servlet dans votreweb.xml
. si vous l'associez/App3
alors que c'est le chemin d'accès que vous utilisez pour obtenir répartiteur.isForwardReqd()
est juste un mannequin méthode pour vérifier si vous avez besoin de transférer ou non. Il n'est pas nécessaire.http://stackoverflow.com/questions/18147115/how-can-i-call-externalapplication-based-on-activemq-message-using-jms
.Ce que vous propose la même chose que j'ai fait déjà,mais ne fonctionne pas. Si vous à ma précédente question, alors vous comprendrez.request.getRequestDispatcher("ClassName.class");
est incorrect. Comme je l'ai dit, le chemin d'accès est configuré dansweb.xml
. Il n'est pas censé être forfait qualifié nom de la classe. Vous êtes en train de penser J2SE classes autonomes/paquet, mais vous êtes à la mise en œuvre de l'aide J2EE, servlets. S'il vous plaît, de reconsidérer votre choix de la technologie de plate-forme ici.<servlet-mapping>
avec<url-pattern>/ClassName</url-pattern>
configuré dansweb.xml
. S'il vous plaît, prendre l'aide de quelqu'un qui connaît parfaitement JEE. Il ne sera pas possible d'avoir un complexe de discussion sur ce site.Vous pouvez envoyer une requête Get à l'aide de Java;
Sinon vous devrez probablement configurer App2 de sorte qu'il est manipulé par une autre classe ou d'une méthode accessible à tous, servlets.
Façons Possibles
HTTP GET demande avec (éventuellement) les paramètres de la requête
RequestDispatcher - Envoi de la Demande d'une ressource à d'autres ressources. Si elles sont disponibles dans un même projet & serveur.
Cette interface vous permet de faire un serveur latéraux avant/include,
exécute le service de(...)/doGet(...) la méthode de demande de Servlet.
Même Serveur, Les Différents Projet
.sendRedirect()
http://www.sun.com redirige vers http://www.oracle.com/sun/index.html
Invocation d'Autres Servlet
à l'aide de différents moyens