手机版
你好,游客 登录 注册
背景:
阅读新闻

Spring MVC之redirect、forward和普通跳转

[日期:2019-02-27] 来源:Linux社区  作者:bladestone [字体: ]

Spring MVC之Controller的view跳转

在Spring MVC中,通过返回一个view url地址的方式,将特定位置的html渲染之后推送到请求的client端。
例如:
  @Controller
  public class A{
        @RequestMapping("/url/view")
        public String handle() {
            return "/view/html/page1";
        }
  }

这里的page1就是页面所处的位置。这里的返回页面结果,不会影响到client的地址栏的URL信息。

redirect
重定向,服务器收到请求后发送一个状态码给客户端,让客户端再重新请求,并且第一次请求中Request里的数据消失。所以redirect相当于客户端向服务器发出两次请求,第一次请求的数据不会转发给第二次请求,URL地址会变化两次。
例如:
  @Controller
  public class A{
        @RequestMapping("/url/view")
        public String handle() {
            return "redirect:/view/html/page1";
        }
  }

redirect这里基本都是get请求,主要是其原有请求的request数据没有了。

forward
转发(前往),服务器内部的重定向,在Servlet中通过RequestDispatcher转发给另一个程序处理请求,请求的数据依然在。所以forward相当于客户端向服务器发送一次请求,服务器处理两次,请求数据不会消失且URL地址只变化一次。
例如:
  @Controller
  public class A{
        @RequestMapping("/url/view")
        public String handle() {
            return "forward:/view/html/page1";
        }
  }

这里有个问题需要注意是:forward会保持之前的请求状态和数据不变,例如post请求还是会post请求。

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

本文永久更新链接地址https://www.linuxidc.com/Linux/2019-02/157152.htm

linux
相关资讯       Spring MVC 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款