我有一个使用HttpURLConnection连接到servlet的Java应用程序。应用程序将它想要传递给servlet的参数嵌入到url中,同时连接到它。这样servlet就可以使用它的doGet()来访问和处理这些参数。我通过这部分(我可以访问参数并在servlet中显示它们)。Servlet的RequestDispatcher.forward()方法不起作用
接下来我想要做的就是将这些参数从servlet传递到JSP。我使用request.setAttribute()
来做到这一点。但即使在RequestDispatcherObj.forward(request, response)
之后,JSP也不会打开。我甚至试过response.sendRedirect(url)
。
但是,如果我独立运行servlet,上述方法(forward()和sendRedirect())都可以正常工作,并打开JSP页面。
我想知道我做错了什么。
在此先感谢您的帮助。
CODE:
Java应用程序
serverAddress = new URL("http://localhost:8080/WebApp/ServletPath"+"?message1"+"="+message);
(HttpURLConnection)serverAddress.openConnection();
connection.setRequestMethod("GET");
connection.setRequestProperty("Accept-Charset", charset);
connection.setReadTimeout(10000);
connection.connect();
的Servlet
message = request.getParameter("message1");//working
request.setAttribute("message1", message);//to be read in the jsp
url="/index.jsp";
RequestDispatcher dispatcher=getServletContext().getRequestDispatcher(url);
dispatcher.forward(request, response);//Works when servlet is run independently but not when the servlet is called from the App
}
某些代码会更清晰... – 2013-04-10 03:50:14
运行Java应用程序时,您会发生什么? “当servlet独立运行时”是什么意思?您不希望应用程序向servlet发送请求时浏览器显示JSP,是吗? – 2013-04-10 05:53:59
是的,我实际上期待着发生。 – CCGooner 2013-04-10 05:56:14