转发和重定向
相同点
都是web开发中资源跳转的形式。
不同点
转发:是服务器外部的跳转,浏览器的地址栏不会发生变化。从一个页面到另一个页面的跳转还是同一个申请,也即是只有一个申请响应。能够通过request域来传递对象。
重定向:是浏览器主动发动对跳转指标的申请,浏览器的地址栏会发生变化。从一个页面到另一个页面的跳转是不同的申请,也即是有两个或两个以上的不同的申请的响应。无奈通过request域来传递对象。
在SpringMVC中实现转发和重定向
(1)在SpringMVC中依然以传统形式进行转发和重定向
上面的代码中login.jsp就是跳转后的页面
转发:
requst.getRequestDispatcher("login.jsp").forword(request,response);
重定向:
response.sendRedirect("login.jsp");
(2)SpringMVC提供了便捷的转发和重定向的形式
//转发@RequestMapping("/forward")public String forword(){ return "forward:/index.jsp";}
//重定向@RequestMapping("redirect")public String redirect(){ return "redirect:/index.jsp";}