博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用Spring MVC返回Http状态码
阅读量:7308 次
发布时间:2019-06-30

本文共 640 字,大约阅读时间需要 2 分钟。

来源:项目中的Ajax请求Session超时问题。

 

如何正确的处理Session超时问题,之前在项目中判断session超时或者未登录时,是直接返回jsp页面。这样的方式只能对请求不是ajax请求生效,如果是ajax请求则无法正确的跳转。

经过与前端同学沟通后,确定返回http状态码401来确认需要跳转登录。

首先,当session超时时,shiro会跳转到login方法中,在login方法中判断是否是ajax请求,如果不是则返回页面,如果是则返回状态码401.

最开始时,想用response.setStatus方法来填写状态码,并且在请求方法上加上了@Responsebody的注解,发现返回的始终是200状态码。

后来把注解去掉,并且使用restful中的ResponseEntity类来返回状态码。也就是返回的是一个ResponseEntity对象。

@RequestMapping("${adminPath}/login/sessionTimeout")    public ResponseEntity sessionTimeout() throws IOException {        return new ResponseEntity(HttpStatus.UNAUTHORIZED);    }

这样返回给前端的响应头中状态码就是401了。

转载于:https://www.cnblogs.com/pengjian-one/p/7904879.html

你可能感兴趣的文章
http,状态码集
查看>>
Redis设计思路学习与总结
查看>>
带你脱离视频测试的坑
查看>>
linux
查看>>
selenium系列->Actions命令实例整理->assignId(l,i)
查看>>
java导出excel
查看>>
Java动态填充word文档并上传到服务器
查看>>
Docker学习笔记四:Docker容器(container)
查看>>
【VMware vSAN 6.6】2.3.vSAN在vSphere Hypervisor中自带
查看>>
【Openbravo开发】Openbravo windows开发环境搭建
查看>>
Linux 搭建LAMP论坛
查看>>
OSI七层模型和TCP/IP五层模型、iproute家族命令、管理工具介绍
查看>>
OA协同办公系统,流程管理很重要
查看>>
国产移动操作系统的推动
查看>>
2019年Java程序员金三银四跳槽季,机会只留给有准备的人!
查看>>
PDF格式文件怎样编辑,怎样新建书签
查看>>
PDF文件怎么旋转页面
查看>>
在Windows,MacOs,Linux,Unix和Ubuntu上安装MySQL Connector
查看>>
编程之我见
查看>>
深入研究Netty框架之ChannelHandler和ChannelPipeline
查看>>