1.设置ModelAndView对象
根据View的名称,和视图解析器,跳转到指定的页面。页面:视图解析器的前缀+view name +视图解析器的后缀名
跳转方式:转发
- @RequestMapping("/hello.do")
- public ModelAndView show(HttpServletRequest request, HttpServletResponse response)
- {
- ModelAndView mv = new ModelAndView();
- mv.addObject("msg","hello hhh");
- mv.setViewName("hello");
- return mv;
- }
2.通过Servlet API实现
这种方式不需要配置视图解析器。
通过HttpServletResponse实现
方法一
跳转方式:转发
- @RequestMapping("/hello1.do")
- public void show2(HttpServletRequest request, HttpServletResponse response) throws IOException {
- response.getWriter().println("hello HttpServlet API");
- }
方法二:
跳转方式:重定向
- @RequestMapping("/hello1.do")
- public void show2(HttpServletRequest request, HttpServletResponse response) throws IOException {
- response.sendRedirect("index.jsp");
- }
通过HttpServletRequest实现
跳转方式:转发
- @RequestMapping("/hello1.do")
- public void show2(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
- request.setAttribute("msg","request");
- request.getRequestDispatcher("index.jsp").forward(request,response);
- }
3.通过springMVC实现转发和重定向-----没有视图解析器
转发
方法一:
跳转方式:转发
- @RequestMapping("/hello2.do")
- public String show3() {
- return "index.jsp";
- }
方法二:
跳转方式:转发
- @RequestMapping("/hello2.do")
- public String show3() {
- return "forward:index.jsp";
- }
重定向
跳转方式:重定向
- <pre name="code" class="plain">@RequestMapping("/hello2.do")
- public String show3() {
- return "redirect:index.jsp";
- }
4.通过springMVC实现转发和重定向-----有视图解析器
转发:
- @RequestMapping("/hello2.do")
- public String show3() {
- return "hello";
- }
注意:重定向“redirect:index.jsp”不需要视图解析器
一、设置ModelAndView对象。
1、根据View的名称和视图解析器跳转到指定的页面。
2、跳转的页面:视图解析器的前缀 + view name +视图解析器的后缀
3、属于转发方式
二、通过ServletAPI来实现(void)
1、springmvc配置文件不需要配置视图解析器
例子一:通过httpServletResponse来进行输出

例子二:通过httpServletResponse实现重定向

例子三:通过httpServletResponse实现转发

三、通过springmvc实现转发和重定向 -- 没有配置视图解析器(string)
例子一:转发的实现1

例子二:转发的实现2

例子三:重定向

三、通过springmvc实现转发和重定向 -- 有配置视图解析器(string)
视图解析器后缀为jsp
例子一:转发方式

例子二:(1)重定向到index.jsp页面
跟没有配置视图解析器时一样

(2)重定向到requestMapping为hello的方法。

若是直接写hello,也是表示重定向到requestMapping为hello的方法;但若web.xml中配置url请求需以do结尾;则hello的请求会被拦截,报404错误。