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来实现重定向和转发,也可以重定向到另外一个请求

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值