欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

spingboot:登出功能

发布时间:2024/1/1 44 豆豆
生活随笔 收集整理的这篇文章主要介绍了 spingboot:登出功能 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

登录功能可以销毁session或者删除session的属性来实现

session.invalidate(); session.removeAttribute("ID");

这里的ID是我登陆时存入的session
我本来的想法是这样的,先把session消灭,然后return到主页,通过登陆拦截器把他踢回登陆页面。

错误示范

@RequestMapping("/logout")public String logout(HttpSession session){session.invalidate();return "index";}

结果
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.IllegalStateException: Cannot create a session after the response has been committed
是因为我这里invalidate()直接把session设置为失效。但是session失效的同时 浏览器会立即创建一个新的session。这也就是为什么他提示我们Cannot create a session after the response has been committed我们的代码上并没有创建session。是服务器帮我们重新创建了一个session。
然后我改成

@RequestMapping("/logout")public String logout(HttpSession session){session.removeAttribute("ID");return "index";}

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.IllegalStateException: Cannot forward after response has been committed
也就是不能再请求提交之后再转发了。
于是我改成

public String logout(HttpSession session){session.removeAttribute("ID");return "";} }

就可以了

总结

以上是生活随笔为你收集整理的spingboot:登出功能的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。