有个session问题我还是不理解  session不是有客户端访问就被创建 而是有HttpServletRequest.getSession(true)这样的语句时才被创建
访问JSP页面会自动加这句 第一次访问资源里的HTML则不会创建
第一次我们访问jsp的时候  服务器会自动创建一个session  并给它一个sessionid  并通过response回带给浏览器缓存  不管你浏览器关不关  你得到的那个session在服务器里面 
还是存在的  只会通过三种方式消除    但是当 浏览器下次请求其他页面的时候 会带着cookie用户名是Jessionid过来  也正是因为这样 下次请求的时候
服务器才不会创建session  我百度看资料说你把浏览器关了 那个存储sessionID的cookie消失了  所以下次你去重新打开浏览器再去访问资源
又会创建session  我疑惑的是为什么把浏览器关了 那个存储 sessionID的cookie 也会消失  不是那个用户名是 jessionid的COOKie已经缓存了吗

解决方案 »

  1.   

    因为这个cookie是sessionCookie,他的生存周期仅限于一个session,当重新启动浏览器时是不会被加载的当你加入cookie在客户端时是可以创建sessionCookie或者持久的cookie的,他们的生存周期是不一样的
      

  2.   


    -----
    关了浏览器后, session 在服务器里面里存在,但是在浏览器里消失了。
    再打开浏览器访问同一个网页时,浏览器没有 sessionid  送给服务器,于是服务器认为是初次访问,新的session生成 (旧的实际上还在,直到timeout )。当然,如果你是一个高手,还是可以在再开浏览器访问同一个网页时,手动加进原来的 sessionid cookie, 这样,你就还是可以回到原来的 session. (在 服务器的 session timeout 之前。Hacker 常用类似方法)
      

  3.   

    cookie有一个过期时间 cookie存在文件里
      

  4.   

    一个是存在session中的,基于会话的。
    一个是存在本机客户端浏览器的。
      

  5.   

    当你访问一个网站的时候,会自动穿件一个session,这个session的生命周期是在你这访问的时间之内有效的。比如当你关了浏览器之后,这个session的生命值也就到了。如果你要是比如在登录的时候选择记住密码的话,一般会在客户端写一个cookie,这个cookie可以设置一定的生命值的。当你在这个生命值之内再次访问相同的网站的话,依然是可以的。
      

  6.   

    保存sessionid的cookie的生存周期是游览器关闭后销毁,你可以用火狐游览器的查看cookie的生存周期,