我是一名初學者,正試圖理解如何從Servlet重定向到JSP文件。我的Servlet在收到來自當前JSP文件的回覆後「生成」一個結果,並且結果我想將它傳遞給另一個JSP文件。據我所知,有一行代碼:如何從Servlet重定向到JSP文件
request.getRequestDispatcher("/upload.jsp").forward(request, response);
但我創建一個單獨的方法爲,並調用它的的doGet?
我是一名初學者,正試圖理解如何從Servlet重定向到JSP文件。我的Servlet在收到來自當前JSP文件的回覆後「生成」一個結果,並且結果我想將它傳遞給另一個JSP文件。據我所知,有一行代碼:如何從Servlet重定向到JSP文件
request.getRequestDispatcher("/upload.jsp").forward(request, response);
但我創建一個單獨的方法爲,並調用它的的doGet?
你可以做
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.getRequestDispatcher("/upload.jsp").forward(request, response);
}
即使你創造了一個method
seperately您需要的request
和response
對象的method
。
我嚴重推薦的官方文檔:
謝謝!這很棒! – user2221016 2013-04-23 16:30:11
很高興幫助:)如果您發現有用,請將其標記爲答案。 – 2013-04-23 16:51:00
如果您使用帶有註釋的版本3.0重定向是非常簡單的。
假設您有一個用戶類(字符串全名和用戶名與setter和getters)和UserDAO類來處理數據庫操作。 假設這是你的控制器:
@RequestMapping(value = "/user_list")
public String users(HttpServletResponse response, HttpServletRequest request)
{
//some function to verify access
boolean authorized = client.getAccess();
request.setAttribute("authorized", authorized);
if (authorized)
{
List<User> users = UserDAO.geUsers();
request.setAttribute("users", users);
return "user_list";
}
else
{
return "access_denied";
}
}
然後你就可以使用以下語法從任何位置重定向
@RequestMapping(value = "/create_user", method = RequestMethod.POST)
public String add_user(HttpServletResponse response, HttpServletRequest request)
{
boolean authorized = client.getAccess();
if (authorized)
{
User user = new User();
user.setUserName(request.getParameter("username"));
user.setFullName(request.getParameter("fullname"));
if (UserDAO.saveUser(user))
{
return "redirect:/user_list";
}
else
{
return "error";
}
}
else
{
return "access_denied";
}
}
重定向:/ USER_LIST將返回更新USER_LIST(例如,如果你被插入到數據庫您將會反映出 的變化)。
順便說一句:你可以刪除的.jsp和路徑在您的控制器如果您添加幾行到你的XML:
http://www.mkyong.com/spring-mvc/spring-3-mvc-and-xml-example/
看一看這些教程:
對不起,我以爲我讀了你使用的是Spring MVC,因此我在回答中使用了它。 – monika 2013-04-23 16:42:17
它不是使用Spring MVC重定向,它是向前的,如果你想使用Spring MVC重定向,你應該在你的控制器方法中返回'redirect:url'! – 2013-04-23 17:06:11
這是重定向,在我上面提到的XML(鏈接到教程)中提到的xml中縮短了URL。它看起來像這樣:index.prefix =/WEB-INF/jsp/ index.suffix = .jsp等。「user_list」是url的相關部分(因爲它們都有公共前綴和後綴) – monika 2013-04-23 18:29:13
您直接在您的'doGet/doPost/doPut/etc.'中調用該方法。 – 2013-04-23 16:10:52
將它作爲doGet方法的最後一行(更具體地說,您要從哪裏重定向)。基本的想法是你的控制器的邏輯結束,你想現在重定向,把它放在那裏。 – Nishant 2013-04-23 16:12:25
在doGet中調用它;似乎不需要一個沒有令人意外的代碼的單行函數。此外,這是一個停止,之後應該有一個回報。 – 2013-04-23 16:12:41