spring boot-302重定向
文章目录
- 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重定向相关推荐
- Spring Boot工程支持HTTP和HTTPS,HTTP重定向HTTPS
本文试图以通俗易通的方式介绍Https的工作原理,不纠结具体的术语,不考证严格的流程.我相信弄懂了原理之后,到了具体操作和实现的时候,方向就不会错,然后条条大路通罗马.阅读文本需要提前大致了解对称加密 ...
- java403forbidden_java – Spring boot – 返回403 Forbidden而不是重定向到登录页面
在Spring Boot Web应用程序中,我有以下安全配置: @Override public void configure(HttpSecurity http) throws Exception ...
- Spring Boot将端口8080重定向到8443
在Spring Boot 2.x中,我们可以创建一个ServletWebServerFactory来将端口从HTTP 8080重定向到HTTPS 8443 . 访问localhost:8080 ,它将 ...
- Spring Boot Security + Vue 登录成功后重定向无 Access-Control-Allow-Origin 问题解决办法
需要明确: 已正确配置跨域资源共享(CORS)(不然也不可能看到登录成功了). 已正确配置了跨站请求伪造(CSRF)(登录时需要携带 _csrf.token). 全部使用 POST 提交的数据. 本文 ...
- spring boot security 将您重定向的次数过多
在学习spring boot security的过程中遇到了这样的一个问题. 查看代码,为了跳转到我们自己定义的登录页面,写了loginPage("/login.html"),按照 ...
- Spring Boot + Vue + Shiro 实现前后端分离、权限控制
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 来源:http://sina.lt/gauR 本文总结自实习中对项 ...
- actuator的原理_使用Spring Boot Actuator监视Java应用程序
actuator的原理 朋友不允许朋友写用户身份验证. 厌倦了管理自己的用户? 立即尝试Okta的API和Java SDK. 数分钟之内即可在任何应用程序中对用户进行身份验证,管理和保护. 您是否曾与 ...
- redis高并发原理_Java中的42行代码中的URL缩短服务— Java(?!)Spring Boot + Redis...
redis高并发原理 显然,编写URL缩短服务是新的"世界,您好! "在物联网/微服务/时代的世界中. 一切始于在45行Scala中的URL缩短服务-整洁的Scala,以Spray ...
- java spr_Java中的42行代码中的URL缩短器服务(Java(?!)Spring Boot + Redis
java spr 显然,编写URL缩短服务是新的" Hello,world! "在IoT /微服务/时代的世界中. 一切始于在45行Scala中的URL缩短服务 -整洁的Scala ...
- 使用Spring Boot Actuator监视Java应用程序
朋友不允许朋友写用户身份验证. 厌倦了管理自己的用户? 立即尝试Okta的API和Java SDK. 在几分钟之内即可对任何应用程序中的用户进行身份验证,管理和保护. 您是否曾与Spring Boot ...
最新文章
- SAP 固定资产减值准备配置及期初导入
- access查询成绩小于5分_又一所大学公布成绩!5个人中有4人专业课130分以上,厉害了!...
- 手把手教你完成CSDN对接百度统计 看完这篇文章你还不会对接 欢迎您提刀顺着网线来砍我!!!!
- flutter 获取定位_从头开发一个Flutter插件(二)高德地图定位插件
- Docker-Desktop储存路径更改
- centos7 mysql tar_CentOS7中mysql-5.7.21-el7-x86_64.tar.gz版MySQL的安装与配置
- oracle怎么查找最大值,oracle – 在每个分区的列中查找最大值
- CVE-2021-3129:Laravel远程代码漏洞复现分析
- 腾讯网游加速器大升级!5月31日起仅支持国服游戏加速 你用过吗?
- 泰森怎么会输给道格拉斯_巅峰泰森为何遭遇六连败?日本女孩不是主因,而是这位黑人超模...
- 量子纠缠计算机里的灵魂意识,量子纠缠理论告诉我们,灵魂真的存在于你我身体?...
- ELK入门使用-与springboot集成
- wps怎么图片透明_wpsword如何设置图片透明度
- Spanning-tree guard features配置案例
- Cordova--IOS打包问题汇总
- 泥壁鲁(80后 Kevin Yang from ChengDu) 银河帝国 海岛帝国 2012-4月 北美销售额 114w$ IOS(国内前10)...
- 贵州省安顺市谷歌卫星地图下载
- 莎士比亚(50条名句)内容大全 - 谁料过去的繁华,化作今朝的泥土 - 作者 第7页
- 名画19 董源《画选三幅》
- P1880 [NOI1995]石子合并
热门文章
- 嵌入式linux 4g模块,ARM平台嵌入式Linux下使用3G/4G 模块
- 关于扇区、簇、块、页等概念的区分
- screen 命令基本操作教程
- 山西省第二届网络安全技能大赛(企业组)部分赛题WP(二)
- 13-Flow的对象类型
- 网络 卧槽!牛皮了,面试官居然把TCP三次握手四次挥手问的这么详细
- SpringDataJpa的使用 – 实体类序列化
- datawhale-matplotlib-03
- deep image prior (cvpr 2018)
- 估值超 80 亿独角兽爆雷!靠“吹牛”骗取 10 亿融资,2000 万月活中 95% 是“机器人”...