java 实现判断用户是否过期功能
时间: 2023-08-09 19:10:14 浏览: 112
在 Java 中,可以使用 HttpSession 对象来存储用户信息,并通过判断 HttpSession 中的信息是否过期来判断用户是否过期。具体实现步骤如下:
1. 在登录成功后,将用户信息存储到 HttpSession 中。
```java
User user = new User(username, password);
HttpSession session = request.getSession();
session.setAttribute("user", user);
```
2. 在拦截器中,获取当前请求的 HttpSession 对象,并从中获取用户信息。
```java
HttpSession session = request.getSession();
User user = (User) session.getAttribute("user");
```
3. 判断用户信息是否存在且是否过期,如果过期则跳转到登录页面,否则放行请求。
```java
if (user == null || user.isExpired()) {
response.sendRedirect("/login");
return false;
}
return true;
```
4. 在 User 类中,实现 isExpired() 方法来判断用户信息是否过期。
```java
public class User {
private String username;
private String password;
private Date lastActiveTime;
public User(String username, String password) {
this.username = username;
this.password = password;
this.lastActiveTime = new Date();
}
public boolean isExpired() {
// 如果用户最后活跃时间与当前时间相差超过 30 分钟,则认为用户过期
return (new Date().getTime() - lastActiveTime.getTime()) > 30 * 60 * 1000;
}
// 省略 getter 和 setter 方法
}
```
在上面的代码中,User 类表示用户信息,其中 lastActiveTime 表示用户最后活跃时间,isExpired() 方法用于判断用户是否过期。在拦截器中,首先获取 HttpSession 对象,然后从中获取用户信息。如果用户信息不存在或已过期,则重定向到登录页面,否则放行请求。