SpringMVC实现重定向和转发

学习目标:

SpringMVC的重定向和转发


学习内容:

SpringMVC的重定向和转发


学习时间:


学习产出:

在springmvc-04-controller模块下的com.springmvc.controller添加一个ModelTest类

SpringMVC的重定向和转发

1、使用视图解析器进行SpringMVC的重定向和转发

2、使用ServletAPI进行重定向和转发

使用ServletAPI需要将springmvc-servlet.xml的视图解析器注释掉

(1)ServletAPI输出

@Controller
public class ModelTest {
    @RequestMapping("/m1/t1")
    public void test(HttpServletRequest req, HttpServletResponse resp) throws IOException {
        resp.getWriter().println("SpringMVC BY servlet API");
    }
}

(2)ServletAPI进行转发

@Controller
public class ModelTest {
    @RequestMapping("/m1/t1")
    public void test(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
        req.setAttribute("msg","使用request进行转发");
        req.getRequestDispatcher("/WEB-INF/jsp/test.jsp").forward(req,resp);
    }
}

页面显示:使用request进行转发

(3)ServletAPI进行重定向

@Controller
public class ModelTest {
    @RequestMapping("/m1/t1")
    public void test(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
        resp.sendRedirect("/index.jsp");
    }
}

页面跳转到index.jsp

3、通过SpringMVC来实现转发和重定向

使用SpringMVC来实现转发和重定向需要将springmvc-servlet.xml的视图解析器注释掉

(1)转发

方式一:

@Controller
public class ModelTest {
    @RequestMapping("/m1/t1")
        public String test1(Model model){
            //转发
            model.addAttribute("msg","SpringMVC方式实现转发");
            return "/WEB-INF/jsp/test.jsp";//或者直接return "/index.jsp"
    }
}

页面显示:SpringMVC方式实现转发

方式二:

@RequestMapping("/m1/t2")
    public String test2(){
        //转发二
        return "forward:/index.jsp";
    }

页面跳转到index.jsp,但是地址栏不变http://localhost:8080/m1/t2

(2)重定向

@RequestMapping("m1/t3")
    public String test3(){
        //重定向
        return "redirect:/index.jsp";
    }

页面跳转到index.jsp,地址栏显示http://localhost:8080/index.jsp

web中可以通过SpringMVC来实现重定向和转发,也可以重定向到另外一个请求

你可能感兴趣的:(#,SpringMVC)