springboot 自动断开会话
时间: 2023-08-15 11:14:17 浏览: 212
在 Spring Boot 中,会话管理是由 Servlet 容器负责的。当客户端与服务器建立连接后,Servlet 容器会创建一个会话,并将会话的唯一标识符(session ID)通过 Cookie 或 URL 传递给客户端。默认情况下,会话在客户端关闭或超过一定时间(由服务器配置)后会自动断开。
如果你想在 Spring Boot 中自定义会话的超时时间,可以在应用的配置文件(如 application.properties 或 application.yml)中添加以下配置:
对于 application.properties:
```
server.servlet.session.timeout=60 # 以分钟为单位的超时时间
```
对于 application.yml:
```yaml
server:
servlet:
session:
timeout: 60 # 以分钟为单位的超时时间
```
这样,会话在客户端闲置超过指定的时间后会自动断开。
另外,如果你想手动使会话失效,可以通过以下方式:
1. 使用 `invalidate()` 方法使当前会话失效。
```java
@RequestMapping("/logout")
public String logout(HttpServletRequest request) {
request.getSession().invalidate();
return "redirect:/login";
}
```
2. 使用 `setMaxInactiveInterval()` 方法设置会话的最大不活动时间为 0,即立即失效。
```java
HttpSession session = request.getSession();
session.setMaxInactiveInterval(0);
```
这样,会话将立即失效,客户端再次请求时会创建一个新的会话。
阅读全文