文章目录

  • 302重定向
    • 1. 返回redirect
    • 2. HttpServletResponse重定向

302重定向

SpringBoot系列教程web篇之重定向
參考URL:https://www.cnblogs.com/yihuihui/p/11650078.html

1. 返回redirect

这种case通常适用于返回视图的接口,在返回的字符串前面添加redirect:方式来告诉Spring框架,需要做302重定向处理

@Controller
@RequestMapping(path = "redirect")
public class RedirectRest {@ResponseBody@GetMapping(path = "index")public String index(HttpServletRequest request) {return "重定向访问! " + JSON.toJSONString(request.getParameterMap());}@GetMapping(path = "r1")public String r1() {return "redirect:/redirect/index?base=r1";}
}

上面给出了一个简单的demo,当我们访问/redirect/r1时,会重定向到请求/redirect/index?base=r1,实际测试结果如下

注意上面的截图,我们实际访问的连接是 http://127.0.0.1:8080/redirect/index?base=r1,在浏览器中的表现则是请求url变成了http://127.0.0.1:8080/redirect/index?base=r1;通过控制台查看到的返回头状态码是302

注意: 使用这种方式的前提是不能在接口上添加@ResponseBody注解,否则返回的字符串被当成普通字符串处理直接返回,并不会实现重定向

2. HttpServletResponse重定向

可以直接通过HttpServletResponse往输出流中写数据的方式,来返回结果;我们这里也是利用它,来实现重定向

@ResponseBody
@GetMapping(path = "r2")
public void r2(HttpServletResponse response) throws IOException {response.sendRedirect("/redirect/index?base=r2");
}

上面的demo中,也可以看出这个的使用方式很简单了,直接调用javax.servlet.http.HttpServletResponse#sendRedirect,并传入需要重定向的url即可

总结: 在返回视图的前面加上redirect的方式,更加适用于视图的跳转,从一个网页跳转到另一个网页。

HttpServletResponse#sendRedirec的方式更加灵活,可以在后端接收一次http请求生命周期中的任何一个阶段来使用,比如有以下几种常见的场景

  • 某个接口要求登录时,在拦截器层针对所有未登录的请求,重定向到登录页面
  • 全局异常处理中,如果出现服务器异常,重定向到定制的500页面
  • 不支持的请求,重定向到404页面。

HttpServletResponse#sendRedirec的方式更加灵活,可以在后端接收一次http请求生命周期中的任何一个阶段来使用,推荐一般指使用HttpServletResponse#sendRedirec。

spring boot-302重定向相关推荐

  1. Spring Boot工程支持HTTP和HTTPS,HTTP重定向HTTPS

    本文试图以通俗易通的方式介绍Https的工作原理,不纠结具体的术语,不考证严格的流程.我相信弄懂了原理之后,到了具体操作和实现的时候,方向就不会错,然后条条大路通罗马.阅读文本需要提前大致了解对称加密 ...

  2. java403forbidden_java – Spring boot – 返回403 Forbidden而不是重定向到登录页面

    在Spring Boot Web应用程序中,我有以下安全配置: @Override public void configure(HttpSecurity http) throws Exception ...

  3. Spring Boot将端口8080重定向到8443

    在Spring Boot 2.x中,我们可以创建一个ServletWebServerFactory来将端口从HTTP 8080重定向到HTTPS 8443 . 访问localhost:8080 ,它将 ...

  4. Spring Boot Security + Vue 登录成功后重定向无 Access-Control-Allow-Origin 问题解决办法

    需要明确: 已正确配置跨域资源共享(CORS)(不然也不可能看到登录成功了). 已正确配置了跨站请求伪造(CSRF)(登录时需要携带 _csrf.token). 全部使用 POST 提交的数据. 本文 ...

  5. spring boot security 将您重定向的次数过多

    在学习spring boot security的过程中遇到了这样的一个问题. 查看代码,为了跳转到我们自己定义的登录页面,写了loginPage("/login.html"),按照 ...

  6. Spring Boot + Vue + Shiro 实现前后端分离、权限控制

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 来源:http://sina.lt/gauR 本文总结自实习中对项 ...

  7. actuator的原理_使用Spring Boot Actuator监视Java应用程序

    actuator的原理 朋友不允许朋友写用户身份验证. 厌倦了管理自己的用户? 立即尝试Okta的API和Java SDK. 数分钟之内即可在任何应用程序中对用户进行身份验证,管理和保护. 您是否曾与 ...

  8. redis高并发原理_Java中的42行代码中的URL缩短服务— Java(?!)Spring Boot + Redis...

    redis高并发原理 显然,编写URL缩短服务是新的"世界,您好! "在物联网/微服务/时代的世界中. 一切始于在45行Scala中的URL缩短服务-整洁的Scala,以Spray ...

  9. java spr_Java中的42行代码中的URL缩短器服务(Java(?!)Spring Boot + Redis

    java spr 显然,编写URL缩短服务是新的" Hello,world! "在IoT /微服务/时代的世界中. 一切始于在45行Scala中的URL缩短服务 -整洁的Scala ...

  10. 使用Spring Boot Actuator监视Java应用程序

    朋友不允许朋友写用户身份验证. 厌倦了管理自己的用户? 立即尝试Okta的API和Java SDK. 在几分钟之内即可对任何应用程序中的用户进行身份验证,管理和保护. 您是否曾与Spring Boot ...

最新文章

  1. SAP 固定资产减值准备配置及期初导入
  2. access查询成绩小于5分_又一所大学公布成绩!5个人中有4人专业课130分以上,厉害了!...
  3. 手把手教你完成CSDN对接百度统计 看完这篇文章你还不会对接 欢迎您提刀顺着网线来砍我!!!!
  4. flutter 获取定位_从头开发一个Flutter插件(二)高德地图定位插件
  5. Docker-Desktop储存路径更改
  6. centos7 mysql tar_CentOS7中mysql-5.7.21-el7-x86_64.tar.gz版MySQL的安装与配置
  7. oracle怎么查找最大值,oracle – 在每个分区的列中查找最大值
  8. CVE-2021-3129:Laravel远程代码漏洞复现分析
  9. 腾讯网游加速器大升级!5月31日起仅支持国服游戏加速 你用过吗?
  10. 泰森怎么会输给道格拉斯_巅峰泰森为何遭遇六连败?日本女孩不是主因,而是这位黑人超模...
  11. 量子纠缠计算机里的灵魂意识,量子纠缠理论告诉我们,灵魂真的存在于你我身体?...
  12. ELK入门使用-与springboot集成
  13. wps怎么图片透明_wpsword如何设置图片透明度
  14. Spanning-tree guard features配置案例
  15. Cordova--IOS打包问题汇总
  16. 泥壁鲁(80后 Kevin Yang from ChengDu) 银河帝国 海岛帝国 2012-4月 北美销售额 114w$ IOS(国内前10)...
  17. 贵州省安顺市谷歌卫星地图下载
  18. 莎士比亚(50条名句)内容大全 - 谁料过去的繁华,化作今朝的泥土 - 作者 第7页
  19. 名画19 董源《画选三幅》
  20. P1880 [NOI1995]石子合并

热门文章

  1. 嵌入式linux 4g模块,ARM平台嵌入式Linux下使用3G/4G 模块
  2. 关于扇区、簇、块、页等概念的区分
  3. screen 命令基本操作教程
  4. 山西省第二届网络安全技能大赛(企业组)部分赛题WP(二)
  5. 13-Flow的对象类型
  6. 网络 卧槽!牛皮了,面试官居然把TCP三次握手四次挥手问的这么详细
  7. SpringDataJpa的使用 – 实体类序列化
  8. datawhale-matplotlib-03
  9. deep image prior (cvpr 2018)
  10. 估值超 80 亿独角兽爆雷!靠“吹牛”骗取 10 亿融资,2000 万月活中 95% 是“机器人”...