我有一個使用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