在我的项目文件夹中,我们在ContextPath/WEB-INF/Classes/*.class
名称下有2个java文件App1.class
和App2.class
如果我想运行App1.class
,我需要在浏览器中触发URL。
http://localhost:8080/Mapping/App1
以同样的方式,如果您想触发App2.class
,请使用以下链接
http://localhost:8080/Mapping/App2
我想从App2
触发App1
,意味着如果您在浏览器中使用相应的网址触发App1
,则会触发App2
。
我也不想做任何回应。
我该怎么办呢。
任何人都可以帮助我。
感谢。
答案 0 :(得分:6)
我想从App1触发App2,意味着如果你在浏览器中触发带有相应URL的App1,它将触发App2。
考虑将App1
和App2
配置为Mapping
网络应用中的servlet;您可以使用RequestDispatcher
forward()
App2
请求App1
。这将发生在服务器端,即浏览器将收到响应,好像它来自if (isForwardReqd()) {
RequestDispatcher rd = request.getRequestDispatcher("App2");
rd.forward(request, response);
}
。
App1
请注意forward()
在执行IllegalStateException
之前不得提交回复,否则您将获得{{1}}。
参考 :
http://docs.oracle.com/javaee/7/api/javax/servlet/RequestDispatcher.html
定义一个对象,该对象接收来自客户端的请求并将它们发送到服务器上的任何资源(例如servlet,HTML文件或JSP文件)。
答案 1 :(得分:2)
您可以使用Java发送Get请求;
URL url = new URL("http://localhost:8080/Mapping/App2");
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setRequestMethod("GET");
conn.connect();
或者你应该配置App2,以便它的动作由一个单独的类或两个servlet都可以访问的方法处理。
答案 2 :(得分:1)
可能的方式
HTTP GET请求(可选)查询参数
String query = String.format("param1=%s¶m2=%s",
URLEncoder.encode("param1Value", "UTF-8"),
URLEncoder.encode("param1Value", "UTF-8"));
URL url = new URL(servletURL + "?" + query);
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setRequestMethod("GET");
Map<String, List<String>> header = conn.getHeaderFields();
int responseCode = conn.getResponseCode();
System.out.println("Headers : "+header);
System.out.println("Response Code "+responseCode);
RequestDispatcher - 将请求从一个资源发送到其他资源。如果它们在同一个项目中可用服务器
此界面允许您执行服务器端转发/包含, 执行请求的Servlet的service(...)/ doGet(...)方法。
RequestDispatcher rd = req.getRequestDispatcher("/servlet2");
rd.forward(req, resp); // rd.include(req, resp);
Same Server,Different-Project
RequestDispatcher rd = req.getServletContext().getContext("/Project2").getRequestDispatcher("/ips");
rd.forward(req, resp);
<强> .sendRedirect()强>
www.sun.com重定向到www.oracle.com/sun/index.html
response.sendRedirect(servletURL); // Different Server.
Invoking Other Servlet
使用不同的方式