springmvc14

请求转发和重定向

 

当处理器对请求处理完毕后,向其他资源跳转时,有两种跳转方式:请求转发 与 重定向 。而根据所要跳转的资源类型,又分为两类:跳转到页面与跳转到其他处理器。
注意,对于请求转发的页面,可以是 WEB-INF 中的页面;而重定向的页面,是不能为 WEB-INF中的页面。因为重定向相当于用户再次发出一次请求,而用户是不能直接访问 WEB-INF 中资源的。

 

 

springmvc框架把原来的servlet中的请求转发和重定向进行了封装,现在可以使用简单方式实现了。

forward:表示转发,实现request.getRequestDispatcher("xx.jsp").forward()
redirect:表示重定向,实现response.sendRedirect("xxx.jsp")

forward,请求转发
处理器方法返回 ModelAndView,实现转发 forward操作
语法:setViewName("forward:视图文件完整路径")
forward特点:不和视图解析器一同使用,就当项目中没有视图解析器
1
2
3

对应控制器

@Controller
public class MyController {

@RequestMapping(value = "/doForward.do")
public ModelAndView doSome(){
ModelAndView mv = new ModelAndView();
mv.addObject("msg","-----欢迎使用spring mvc做web开发------" );
mv.addObject("fun","执行的是doSome方法");

//=====================重点===========================

//使用视图解析器
//mv.setViewName("show");

//显式转发
mv.setViewName("forward:WEB-INF/view/show.jsp");

//=====================重点===========================

return mv;
}
}

posted @ 2021-04-27 21:40  青竹之下  阅读(41)  评论(0编辑  收藏  举报