我的问题与Limit number of users accessing a web ASP .NET application相同,但我在java6 tomcat7和struts 2中寻找解决方案 要求:
我在想使用静态地图并为登录和注销创建一个条目。 你能提出任何建议/想法吗? 谢谢 -Jiggi
答案 0 :(得分:3)
您可以使用以下代码计算活动会话数
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,则不再创建
答案 1 :(得分:1)
您可能希望将用户状态保留在表格中。
1)从state = 1的用户中选择count(*) - 暂停1登录
2)从名为=?
的用户中选择状态3)如果1中的sql返回太多,则只需拒绝登录
4)超时。我担心这是唯一适用于无状态网络世界的东西。如果用户没有办理登机手续30分钟(或任何超时),请将其设置为退出。用户的任何行动都应构成“登记入住”
除了简单的状态指示器外,您还可以保留“最后一次活动”的日期,如果一段时间内没有记录任何活动,它可以作为自动超时。