我现在正在实现一个功能:验证用户session是否超时,如果超时重新连接,登陆采取域验证的方式,采用request.getHeader("Authorization")来获取用户名和密码的加密串。
我写了一个过滤器,判断session里面是否有相应信息,如果用户已经登陆过,但是session超时,我会重新用request.getHeader("Authorization")重新给session赋值,给客户一种session永远不会过期的感觉,但是我现在遇到这样的问题,session过期后,通过get方式的请求用request.getHeader("Authorization")不为null,但用post方式的请求request.getHeader("Authorization")为null,请问这是为什么?

解决方案 »

  1.   

    这个是提交表单的区别了
    主要是http协议中get和post的区别get是从服务器上拿,你session失效后,服务器上就没这个session了,里面的信息当然也没有
    所以取道null
    post是向服务器上传递,应该会把本地的信息再传一次吧
    我是这么理解的。
    当然,他们还有很多别的区别
    http://blog.csdn.net/camel20/archive/2004/08/27/86331.aspx
    http://www.blogjava.net/beandy809/archive/2007/11/21/162074.html
    具体你自己看吧
      

  2.   

    看一下http信息头建议你也可以用Cookie来解决这个问题,生命周期为当前浏览器,这样也可能会好点