要不登陆 会重复登陆 可否在监听器什么的处理 详细点 谢谢

解决方案 »

  1.   

    <listener>        
       <listener-class>org.login.actions.OnlineCounterListener
       </listener-class> 
    </listener> 
    web.xml中配置如上监听session创建和销毁额两个方法
    public class OnlineCounterListener implements HttpSessionListener {


    public void sessionCreated(HttpSessionEvent hse) { } public void sessionDestroyed(HttpSessionEvent hse) {

    }
    }
      

  2.   

    清理Session,只能靠会话超时,默认大约是30分钟。如果你要防:重复登录。那要另外设计一套机制,不能仅依赖于中间件的session机制,否则极为不靠谱。
      

  3.   

    session.invalidate();或者web.xml设置超时时间  单位:分钟<session-config>
    <session-timeout>60</session-timeout>
    </session-config>
      

  4.   

    过期时间什么的 都没问题 重复登陆 也没啥大问题
    就是在异常 后 登陆时重复登陆
    3楼 有什么好方法吗 我这个是有时候问题不少public void sessionDestroyed(HttpSessionEvent hse)
    {       
      OnlineCounter.reduce();  
       } 
    这个方法中 如何清除当前用户的session
      

  5.   

    hse.getSession().invalidate();
    这样 可以再这个用户 浏览器崩溃时候 消除此用户的session?
      

  6.   

    弱弱的说下 这个虽然统计人数很对 但在浏览器崩溃的时候 压根没走sessionDestroyed方法?
    我里面输出的文字完全不显示
      

  7.   


    浏览器即便不崩溃,我直接 关闭 浏览器,仍然不会触发 sessionDestroyed 事件。这种情况下,之后服务器端session超时(也就是服务器端在30分钟内都没有收到过来自该session的请求),才会主动对session进行销毁以回收内存空间,那么此时才会触发 sessionDestroyed。如果你想做测试,可以把session-timeout设置的很短来试试看,比如:
    <session-timeout>2</session-timeout>
    如果你还不清楚,建议去Google下: session 生命周期
      

  8.   

    8楼。
    我浏览器关闭事件  可以清除 session 
    也有退出按钮 可以清除 session
    我现在想要的是 在浏览器 崩溃的时候 清除session..
    貌似前面的方法  HttpSessionListener 解决不了了
    谁有什么思路 可以在浏览器崩溃的时候把次用户的信息全部清除
      

  9.   

    你太自信了啊浏览器关闭事件,不同浏览器的机制是不一样的,此外我如果直接杀死浏览器只怕你也完全没办法。此外,我是否可能发生断网?我欠费了被断网了被老婆把网线拔了被狗把电源拔了然后,我是不是可以让电脑睡眠或休眠?或者我登录后就不管它,然后另外找台电脑再重新登录?那么回到Session如果尽量真实有效这个说法的话,如果你真的很追求,简易方法就是:
      <session-timeout>3</session-timeout>
    然后页面中用Ajax每隔一分钟就自动访问一次服务器。那么只要因为任何原因中断,服务器端的会话在3分钟左右就会自动失效,也就是触发sessionDestroyed事件。
      

  10.   

    ajax每分钟 判断该用户是否在线? 我不太清楚我想要的效果是 每分钟 判断用户是否在线 如果不在就把它信息消了 
    能具体点吗
      

  11.   

    每分钟 判断所有的用户 是否离线或怎么的 如果不在 就把它session消了 貌似可以满足我的要求能详细点吗。。本人 做软件时间不长。。第一次做大项目
      

  12.   

    说白了就是浏览器端,用Ajax定期发一个GET请求,有这个请求,服务器会自动更新session的有效期。
    但这种做法,会大大增加服务器的负担,因为请求数量上升很多,所以主要只能用于内部系统而非互联网系统。
      

  13.   

    可以Google一些SSO 也许比较能满足你的要求。