目前系统运行过程中,会莫名其妙的跑到登陆页面,每个jsp头都加了用户的session验证,而且都是在操作过程中丢失的,肯定不是过期引起的,会是啥原因的?没有测试出丢失的规律,是偶尔发生的,

解决方案 »

  1.   

    session是有这个问题,不管java还是.net。一般不会经常出现吧。
      

  2.   

    网上搜的: (HttpServletResponse)response).setHeader("P3P","CP=CAO PSA OUR" 做下这个设置
      

  3.   

    一个域名的cookie不能超过4k,超过就会失效
    每一个session都会生成cookie来保存session ID。
      

  4.   

    (HttpServletResponse)response).setHeader("P3P","CP=CAO PSA OUR"
    这个我试试,不知道能不能解决,太难模拟了,不过我们用了好多的框架,iframe,说不定真是这个原因呢
    服务器没事
      

  5.   

    Session丢失很多情况是是由于客户端引起的,看看cookie有没有打开。
    IE中好像对cookie的个数是做了限制的,好像每个域最好20个,超了就可能丢失session
      

  6.   

    如果不跨域,session在正常情况下丢失到是还没有遇到过。
    要调试你可以写一个监听的类:
    public class LoninListener implements HttpSessionBindingListener{
    public void valueBound(HttpSessionBindingEvent event)
    {

            }
    public void valueUnbound(HttpSessionBindingEvent event)
    {
        记录相关信息
    }
    }在登录方法里采用session.setAttribute("longin",new LoninListener());进行绑定。这样当login这个属性失效后就会调用LoninListener 中的valueUnbound方法。valueUnbound方法你可以根据自己想获取的信息进行实现
      

  7.   

    是不是往session里面塞了很多对象导致出错?
    用一些调式工具跟踪一下或者干脆把session持久化到数据库,如果丢失了再去数据库找一遍。
      

  8.   

    恩,我也出现过,不过一直没有解决关注中struts 2   ie7浏览器
      

  9.   


    这个问题我曾与它搏斗了好多天。
    就是:session没有过期,而是浏览器向服务器方传请求时,会丢失JSESSIONID的这个COOKIE。经过我的多方测试,我发现:当使用frameset 或 iframe 时,出现的可能性很高。
    查了很多资料,微软的解决方案建是:setHeader("P3P","CP=CAO PSA OUR"),
    但对我们的系统,没有用。
    后来用户实在对我们这个问题很烦脑,最后不得不放弃session,全部采用URL重写。(以后的系统中,我们就少用了frameset 与 iframe了----若要用,应该使用URL重写。)
      

  10.   

    既然不是时间问题
    估计原因是
    大部分的Session丢失是客户端引起的,所以要从客户端下手,看看cookie有没有打开
    IE中的cookie数量限制(每个域20个cookie)可能导致session丢失
      

  11.   

    服了,那就把那些代码全删点,用一个filter过滤全搞定,基本丢失可能性下降80%吧
      

  12.   

    这是个好方法
    要不就用 Eclipse的dug
      

  13.   


    22楼: 服了,那就把那些代码全删点,用一个filter过滤全搞定,基本丢失可能性下降80%吧action 中你也过滤么?action分项目前台的action和后台添加数据的action你怎么处理session问题,说的真简单
      

  14.   

    lz看看session是在哪丢失的,然后再分析分析代码找找原因,之前我也遇到过,后来找到那地方,只是重新拾下session
      

  15.   


    关ACTION什么事情,在filter里面重新确认下session嘛。相当于继电器(模拟信号传输损耗)。
    这个比率多少我不知道。。但是肯定有一定的作用。
      

  16.   

    很久没写代码了,只能给你思路。
    确定其他操作没有修改session。
    确定要找的session正确
    确定需要session的页面能正确得到正确的session。所谓丢了,就是以后都找不到。
    回到登录页面后,你后退做其他操作是正常还不正常?
    是都不正常还是有时候不正常。先定位问题出现的地方吧。
      

  17.   

    ...禁用cookie怎么办?那session不是挂掉了................................................................
      

  18.   

    我也遇到过这种情况,莫名其妙的session值就变掉了,仔细查找原因发现好像在主页面如果用window.open的话sessionID一定会丢失。所以后来把所有的window.open都移交到iframe里面的页面去了。