什么是转发和重定向?
1.转发是在服务端完成的,重定向是在客户端完成的
2.转发速度快,重定向速度慢
3.转发是同一次请求,重定向是两次请求
4.转发地址栏没有变化,重定向有变化
5.转发是在同一台服务器,重定向不必。
具体的举个例子,转发速度快,一般默认情况下用转发。但是有一些场景却不能用转发,比如我们登陆后要提交表单,如果用转发的话,当用户刷新页面,会造成重复提交。
转发:
@RequestMapping(value = "test")
public String test(HttpServletRequest request,
HttpServletResponse response) {
return "forward:/test.jsp";
}
重定向:
@RequestMapping(value = "test")
public String test(HttpServletRequest request,
HttpServletResponse response) {
return "redirect:/test.jsp";
}
ps:model的生命周期是request,所以用重定向的话,model无效!