【问题标题】:Limit number of users accessing a java web application限制访问 Java Web 应用程序的用户数
【发布时间】:2014-09-04 11:57:40
【问题描述】:
【问题讨论】:
标签:
java
web-applications
【解决方案1】:
您可以使用下面的代码计算活动会话数
public class SessionCounter implements HttpSessionListener {
private static int activeSessions = 0;
public void sessionCreated(HttpSessionEvent se) {
activeSessions++;
}
public void sessionDestroyed(HttpSessionEvent se) {
if(activeSessions > 0)
activeSessions--;
}
public static int getActiveSessions() {
return activeSessions;
}
}
这样您可以限制会话。例如:如果活动会话为 20,则不再创建
【解决方案2】:
您可能希望将用户的状态保存在表格中。
1) 从 state=1 的用户中选择 count(*) -- 假设 1 已登录
2) 从name=?的用户中选择状态
3)如果sql in 1返回太多,直接拒绝登录
4) 超时。恐怕这是在无状态网络世界中唯一有效的方法。如果用户在 30 分钟内(或任何超时时间)都没有签到,请将他设置为注销。用户的任何行为都应构成“签到”
除了简单的状态指示器,您还可以保留“上次活动”的日期,如果一段时间内没有记录任何活动,它可以作为自动超时。