<session-config>
     <session-timeout>-1</session-timeout>
 </session-config>我在WEB.XML里面这么配置了,但是呢还是不好使session还是会过期怎么让它永久不过其啊。。struts2 有自己的方式?

解决方案 »

  1.   

    session保存的时间越长,占用的资源就越多,所以建议你还是不要想着把session设为永久
    写一个程序定时获取session中的值,这样就能保证session不会过期,而且也不会占用太多资源。
      

  2.   

    也到cookie行吧struts2
    对cookie怎么读取啊
      

  3.   

    为什么session要永久不过期呢,这是什么需求啊?建议楼主少用session。。
      

  4.   

    那你用application 只要服务器开着就一直存在
      

  5.   

    我这个项目带权限
    但是呢这个项目只要一跑起来就不会停止,就是说要长时间运行所以让session永久application的话不存在效率?
    说点实际的,我那样能不能让session永久啊?
      

  6.   

    如果要使session永久还不好,用application 的好,这个只要服务器存在没有停止,那application 中的值就会一直存在啊,只到服务器停目为止,这样不就可以达到你的效果了,不过用session永久也不现实啊!也可以和楼上说的那样,定时访问session,让其不过期
      

  7.   

    那用application就行,个人感觉如果让session不过期可能效率会比application低,因为java虚拟机一起要跟踪session状态,而application就相当于全局变量,用的时候直接读取就可以 了,不用开销跟踪的资源。
    用session的话一般是有时间限制的
      

  8.   

    在asp.net里面就算你停止web服务器,application也不会停止的,照样保存着值,除非停止www服务,或者关闭电脑,在java里我就不敢确定了
      

  9.   

    那你还不如,将权限记录到数据库中,我以前参与的一个项目就是用户一登录,将用户的IP和权限记录到数据库中,最后保存到session中,如果session失效,就去数据库中查询是否存在,存在的话又保存到session当中,这样不就可以永久了吗
      

  10.   

    <session-config> 
        <session-timeout>0</session-timeout> 
    </session-config> 
      

  11.   

    这个可以。因为我的项目要一直运行。我就算在WEB.XML设置了session还是过期,
    打算用application,省事,用cookie也可以,不知改咋选啊··
      

  12.   

    application、session的最大区别就是一个会过期,一个不会过期...你想不过期就用application就好了!
      

  13.   

    需求很简单项目要长时间运行,运行期间会对一些操作进行权限的判断现在我用的是session但是感觉不好,一个是过期问题,还有一个是效率问题。不想过期用application就号了,效率我不知道会怎么样。权限是3个Map,每个Map里都有6种权限,总共18个。我就把Map封装到了User类种,把类放到了session
    说说谁有好的方案啊,我觉得cookie比较合适,不用想过期问题,效率会怎么样呢?
      

  14.   

    “传统”的做法,都是db里面建立一个权限操作的表。
    然后每次执行某个机能的时候,就先过滤一下来人的权限,
    也就是类似一个过滤器去认证一下进入到某个机能的人的权限,
    (j2ee的filter或者struts2的拦截器(interceptor))
    如果能使用如何如何,不能使用如何如何。这种把数据都放到session中的做法,
    lz以后还是不要这么设计为妙,
    撑暴服务器的事情屡见不鲜了。session中能少放东西就少放东西。good luck
      

  15.   

    Lz做的这个我也需要做,也是权限的控制,但我绝对不支持你用application.每个用户创建一个application的话,如果用户很多,我怕你服务器会承受不了。不要滥用session,session的效率
    还是可以的。关于过期的问题,只要定时刷新一下,根本不会影响什么。
    我就是在后台用session传一个值过来,然后在一个jsp中直接取值,不过设置这个jsp每隔20秒刷新一次。
    jsp的刷新又不需要耗费多少资源,所以个人感觉还是不错的。
    上述个人看法.
      

  16.   

    项目要长时间运行,运行期间会对一些操作进行权限的判断 
    你如果有使用spring的话,spring框架有一个可以设置定期调用检查的代码,权限判断应该写在数据库里面好啊!然后查询数据库
      

  17.   

    如果让session永远不过期,那不如用application了,不过效率不怎么好了
      

  18.   

    推荐application,cookie也可以。session永不过期是干什么用的?
      

  19.   


    为了这个而浪费内存,楼主有些小题大做了.
    可以在cookie里面存放一个用户名或者用户的唯一标识,在用户访问的时候建立一个session,存放权限,用户名等信息.当用户长时间不操作的时候在权限验证时发现session过期了,到cookie里面找到用户的标识,再到数据库中查找一下用户的权限,重新建一个session.当然,也可以把权限信息都格式化为字符串存放到用户的cookie里面,为了安全需要对这个字符串进行加密.每次用户访问的时候就把字符串中的信息格式化为用户权限上面两种方法一个是费内存,一个是费cpu.楼主自己挑着用吧还有,session过期的机制就是为了当用户长时间不操作的时候退出来以免有人恶意的操作.永久化session最好永远都不要用
      

  20.   

    可以在页面上搞一个JS函数,好像是setInterval,用AJAX访问服务器,让客户端定时与服务器端交互,当然,不管干些什么事,只要交互就可以了。
      

  21.   

    session无法永久。电总有停的时候,你程序就有关的时候,session就会有丢失的时候。