SpringMVC之转发和重定向

SpringMVC之转发和重定向

1.转发

服务器端的行为, 请求地址不发生改变, 由服务器向浏览器转发页面, 发送一次请求

  • 方式一 : 在没有配置视图解析器时, 在返回值的前面加 / 后面跟具体的jsp页面路径

    注意 : 如果使用此方式时配置了视图解析器, 那么返回值的前面和后面将会被添加多余的前缀和后缀, 导致404错误

        @GetMapping("/fr")
        public String fr(Model model){
            model.addAttribute("msg","这是转发");
            return "/WEB-INF/jsp/fr.jsp";
        }
    
  • 方法二 : 使用 forward, 此时无论是否配置了视图解析器都可以实现转发功能, forward: 后跟具体的jsp页面路径

        @GetMapping("/fr")
        public String fr(Model model){
            model.addAttribute("msg","这是转发");
            return "forward:/WEB-INF/jsp/fr.jsp";
        }
    
2.重定向 redirect

浏览器端的行为, 请求地址发生改变, 由服务器告知浏览器该发送什么请求, 发送请求大于一次

  • 重定向到web目录下的jsp页面

    注意 : web目录下的jsp页面可以直接访问, 也就是可以直接使用web目录下的jsp页面名作为请求发送, 但是web目录下子目录的内容不可以直接访问, 否则404错误

        @GetMapping("/fr2")
        public String fr2(Model model){
            model.addAttribute("msg2","这是重定向");
            return "redirect:/index.jsp";
      }
    

    浏览器发送 fr2 请求, 服务器告诉浏览器该发送 index.jsp 请求, 浏览器再次发送 index.jsp 请求, 最后得到 web 目录下的 index.jsp 页面

  • 重定向到别的请求

    @GetMapping("/re")
    public String re(Model model){
        model.addAttribute("xxx","这是重定向后的页面");
        return "fr2";
    }
    
    @GetMapping("/fr2")
    public String fr2(Model model){
        model.addAttribute("msg2","这是重定向");
        return "redirect:/re";
    }
    

    浏览器发送 fr2 请求, 服务器告诉浏览器该发送 re 请求, 浏览器再次发送 re 请求, 方法返回 fr2 字符串, 经视图解析器处理, 最后得到 fr2.jsp 页面

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值