Session永远不失效就失去了Session的意义了,
直接存数据库不行吗?

解决方案 »

  1.   

    为什么要让session永远不失效呢!?你可以试试把session的有效时间设为0试试!(我只是觉得可能,但是自己没尝试过)
      

  2.   

    我的意思是用户登陆服务器后,程序将用户名存到session中,在用户退出之前,如何让session不失效,因为在其他页面中程序需要获取用户名。
      

  3.   

    那为什么不用Application呢?
    可是Application一关服务器也就没了
      

  4.   

    刚才看帖子有了新的领悟:
    将session的值设为2小时,然后让页面每1小时50分钟就自动刷新一下,这样session就永存了。不过又看了楼主的留言,感觉楼主好像不是这个意思。根据我得理解,楼主需要掌握一些HttpSessionBindingListener 接口的知识,才好.
      

  5.   

    做一个页面,存有session。将session的值设为2小时,然后让页面每1小时50分钟就自动刷新一下,这样session就永存了。这样好象正好是楼主要做的,只 要提醒用户这个页面不要关掉
      

  6.   

    可能楼主是想做session的持久化吧
      

  7.   

    摘抄:
    刚才看帖子有了新的领悟:
    将session的值设为2小时,然后让页面每1小时50分钟就自动刷新一下,这样session就永存了。不过又看了楼主的留言,感觉楼主好像不是这个意思。根据我得理解,楼主需要掌握一些HttpSessionBindingListener 接口的知识,才好.
    这个主意挺不错的啊
      

  8.   

    建议你还是不要SESSION,太消耗内存了,如果一个网站同时1000人在线,服务器都承受不了,不如用COOKIES
      

  9.   

    我的意思是用户登陆服务器后,程序将用户名存到session中,在用户退出之前,如何让session不失效,因为在其他页面中程序需要获取用户名。搂主的意图不知是否说清楚?在用户退出之前,session是不会失效的阿,只要你设的时间够长。
      

  10.   

    我的意思是用户登陆服务器后,程序将用户名存到session中,在用户退出之前,如何让session不失效,因为在其他页面中程序需要获取用户名。
    ---------------------你可以设定长一些,比如一个小时
    session永不timeout的话,你的服务器会暴掉的
      

  11.   

    错了,放到数据库是不对的,要考虑用户在不同的电脑上登入,应该放到cookie里,一旦登入成功写session的同时就写cookie,当然,客户端不支持或关闭cookie的话……
      

  12.   

    session.setMaxInactiveInterval(-1);
    或是在失效果重新给你想要不失效的session赋一次值就行了
    让其在失效的时间内活动一次
      

  13.   

    session.setMaxInactiveInterval(-1);//is ok
      

  14.   

    好主意, Cookie + 刷
      

  15.   

    用Application
    但是你能保证你不关服务器吗?
      

  16.   

    在主窗体中加入一个很小的frame
    它的内容经常刷新就可以,自动刷新的代码是:
    <META HTTP-EQUIV="Refresh" Content=60>
    content是多少秒,画面刷新一次。
    可以将frame隐藏。
      

  17.   

    这样可以吗?
    main.jsp
    <html>
    <head>
    </head>
    <frameset rows="*,0" cols="*" framespacing="1" frameborder="0" border="1">
      <frame name="index" scrolling="no" noresize target="contents" src="index.jsp">
      <frame name="session" src="KeepSession.jsp" frameborder="0" scrolling=no noresize />
      <noframes>
      <body>
      </body>
      </noframes>
    </frameset>
    </html>
    KeepSession.jsp
    <html>
    <head>
    <script language="JavaScript1.2">
    function setTimer()
    {
        setTimeout(KeepSession.submit(),300 * 1000);
    }
    </script>
    </head>
    <body onLoad="setTimer();">
    <form name="KeepSession" action="KeepSession.jsp">
    </form>
    </body>
    </html>
    当然,浏览器要支持框架。
      

  18.   

    晕了,session永远不失效老问题了,如果把时间调为0,好象可以,没试过,或是调到好大,这样session变量常住内存,如果访问量大,服务器崩溃。如果把时间设为1小时50分钟刷新一次,这样好象也有点问题,好象用<mate>刷新和用settimeout()刷新都有点问题,时间太长了。
    最好的办法感觉是把session和cookie联合起来用,写个cookie,当session失效读cookie,这样客户端如果不在,session也可以不久就失效了。但是我试没成功过,因为session其实也是一种cookie,用来用去感觉就乱了,但是我想肯定是我没用对,应该可以。望高人GO ON
      

  19.   

    既然想让它不失效那就别用session了呵呵
      

  20.   

    session.setMaxInactiveInterval(-1);
    -1应该就不会失效了。
      

  21.   

    用cookie就行了,
    一般都是这样的(只是有些不安全?也许吧)
    如果是一般论坛什么的用cookie是没什么的,很多都用的是cookiesession持久化是用来支持数据库重启后session仍生效的,
    不想用cookie就用数据库支持吧(原来做过一个项目就是如此,还写了一个采随机数据的东西,复杂,而且就是那个采随机数的程序也用到了数据库,连不上数据库都不好用,不过随机数倒是蛮好的)
      

  22.   

    用一个隐藏的iframe,不断的刷新就行了
      

  23.   

    对,超时时间设置为 -1 就可以了。不过这样的话,用户多了以后,服务器负担就重了哦~~~可以采用页面过一段时间自动访问服务器的办法使SESSION不失效
      

  24.   

    IT公司查询网站,大家可以查下自己关心的公司!
    http://www.seeitco.com                                  
                                      
        收集国内外IT公司相关信息,并且有相关的评论和排名,你也可以把自己的看法加进去,包括待遇、薪水、公司规模等等,对于找工作的各位很有帮助哦!自己先在心里有个底,至少不会被各家公司眼花缭乱的招聘广告所蒙骗。各位也可以往里面添加新的公司信息,使数据库进一步完善,以后就会越来越方便!
      

  25.   

    写时间循环
    在有效一个时间重新写一次seession