wicket中的活动会话列表

pus*_*tic 2 java tomcat wicket

我需要得到活跃的wicket会话列表.现在我在覆盖方法newSession()中保存所有新会话,并且在会话失效时正在删除此会话.但是这种方法存在很多问题.我如何理解这种方法是非常粗鲁的黑客,如果你知道另一种方法,我将不胜感激.(我使用wicket v1.5.4和tomcat v7.0.25)

更新

感谢您的回答,但我需要获取WICKET会话列表(WebSession).我添加了HttpSessionListener和WebSessions和HttpSessions的静态映射(带同步).这种方式比我好,并且没有旧问题,但它看起来也像黑客:(.你对获取检票口会议列表有什么想法吗?

Pet*_*son 6

是否可以使用简单的Listener来接受这样的事情?

public class SessionCounterListener implements HttpSessionListener {

  private static int totalActiveSessions;

  public static int getTotalActiveSession(){
    return totalActiveSessions;
  }

  @Override
  public void sessionCreated(HttpSessionEvent event) {
    totalActiveSessions++;
 }

  @Override
  public void sessionDestroyed(HttpSessionEvent event) {
    totalActiveSessions--;
  } 
}


<web-app ...>
    <listener>
    <listener-class>SessionCounterListener</listener-class>
</listener>
</web-app>
Run Code Online (Sandbox Code Playgroud)

也有从"在行动检票"的一个例子预订这里

  • +1,但不应该访问`totalActiveSessions`同步或'AtomicInteger`使用?我不认为servlet规范说明了对会话侦听器的并发访问. (2认同)