如何将http请求发送到另一个servlet

Han*_*ath 1 java java-ee-6

在我的项目文件夹中,我们有2个ContextPath/WEB-INF/Classes/*.class名称为App1.class和的java文件App2.class

如果我想运行App1.class,我只需要在浏览器中触发URL.

  http://localhost:8080/Mapping/App1
Run Code Online (Sandbox Code Playgroud)

同样,如果要触发App2.class,请使用以下链接

 http://localhost:8080/Mapping/App2
Run Code Online (Sandbox Code Playgroud)

我想触发App2App1,意味着如果触发App1在浏览器对应的URL,这将是触发App2.

我也不想做任何回应.

我怎样才能做到这一点.

谁能帮我.

谢谢.

Rav*_*yal 6

我想从App1触发App2,意味着如果你在浏览器中触发带有相应URL的App1,它将触发App2.

在Web应用程序中考虑App1App2配置为servlet Mapping; 你可以利用a RequestDispatcherforward()满足要求App2.这将发生在服务器端,即浏览器将收到响应,就好像它来自App1.

if (isForwardReqd()) {
    RequestDispatcher rd = request.getRequestDispatcher("App2");
    rd.forward(request, response);
}
Run Code Online (Sandbox Code Playgroud)

请注意,App1在做之前一定不要做出回应forward(),否则你会得到一个IllegalStateException.

参考:http :
//docs.oracle.com/javaee/7/api/javax/servlet/RequestDispatcher.html

定义一个对象,该对象接收来自客户端的请求,并将它们发送到服务器上的任何资源(例如servlet,HTML文件或JSP文件).