java 监听session过期
时间: 2023-10-17 21:10:44 浏览: 122
在Java中,可以通过实现`HttpSessionListener`接口来监听session的创建和销毁事件。具体步骤如下:
1. 创建一个类并实现`HttpSessionListener`接口。
```java
public class MySessionListener implements HttpSessionListener {
@Override
public void sessionCreated(HttpSessionEvent se) {
// session创建时执行的操作
}
@Override
public void sessionDestroyed(HttpSessionEvent se) {
// session销毁时执行的操作
}
}
```
2. 在`web.xml`文件中配置listener。
```xml
<listener>
<listener-class>com.example.MySessionListener</listener-class>
</listener>
```
3. 在`sessionCreated`和`sessionDestroyed`方法中编写相应的操作逻辑。
例如,可以在`sessionCreated`方法中记录session的创建时间,而在`sessionDestroyed`方法中记录session的销毁时间,并计算出session的生命周期。如果session的生命周期超过一定时间,则可以认为该session已过期。
```java
@Override
public void sessionCreated(HttpSessionEvent se) {
HttpSession session = se.getSession();
session.setAttribute("createTime", System.currentTimeMillis());
}
@Override
public void sessionDestroyed(HttpSessionEvent se) {
HttpSession session = se.getSession();
long createTime = (long) session.getAttribute("createTime");
long destroyTime = System.currentTimeMillis();
long sessionTime = destroyTime - createTime;
if (sessionTime > 30 * 60 * 1000) {
// session过期,执行相应的操作
}
}
```
在上述例子中,30 * 60 * 1000表示session的最大生命周期为30分钟。如果session的生命周期超过了30分钟,则可以认为该session已过期。
阅读全文