Cookie是可以设置有效期的.
默认请况是仅在浏览器进程内,那我关闭浏览器的后,服务器端的session对象在一段时间内会销毁.
如果Cookie设置有效期三个月,那么服务器端的Session对象是不是一直要保存三个月???

解决方案 »

  1.   

    不太懂web,但显然cookie是存在客户端的。
    下次连接服务器时,服务器通过浏览器读取客户端的cookie中的值来判断有效期。
    有效期内的就添加进当前连接的session对象里。
    而不是一直保留session对象。
    具体的概念问题可以去搜索一下。
      

  2.   

    显然cookie存在客户端,而session存在服务器端,cookie设置的有效期与session的有效期无关
    session在下列情况下被删除:
    A.程序调用HttpSession.invalidate()
    B.距离上一次收到客户端发送的session id时间间隔超过了session的最大有效时间
    C.服务器进程被停止
      

  3.   

    cookie是保存在客户端的,如果你设置为3各月,那么在3个月的时间里,只要访问你的网站,你是可以得到cookie的,session是保存在服务器端的内存里面,你可以设置session的存活时间,但不宜过长,会消耗服务器内存,默认好像是30分钟啊,你设置cookie的时间和session的存活时间时没有关系的啊!
      

  4.   

    大多时候HttpSession是依赖cookies去传递的, 可以抓包看下类似 httpheader cookies信息:
    jsessionid=123456adcvvvvvv
    至于这个cookie放在浏览器多久, 我想应该大多的时候是关闭浏览器页面即销毁,也可能每个JSP服务器实现不同。在不关闭浏览器的时候,浏览器就是靠传递这个jsessionid到服务器, 服务器依靠这个id去找session.HttpSession可以在web.xml等设置超时时间, 假设是30分钟。 30分钟之内要是浏览器一直会和服务器做交互, 即使30分钟之后浏览器再请求, 服务器也会认为这个session是超时的了。  而且大多JSP服务器也应该支持类似SessionTimeout接口, unbound什么的listener说那么多应该明白了吧。 BTW, 当浏览器cookie默认不支持的时候,其实我们也可以使用URL?jsessionid=xxxx方式去支持 session.
      

  5.   

    Sorry 应该是30分钟之内要是浏览器一直没有和服务器做交互
      

  6.   

    一个是客户端的东西,一个是服务器端的东西,这个先搞清楚了IE的话,开启一个窗口就是新建一个session,FF反之,是用来保持用户的登陆状态cookie的话是记住客户的登陆信息,方便用户下次登陆
      

  7.   

    客户端cookie只是记录站点和用户数据,而服务端活动session只装置当前活动用户数据,当用户退出或关闭ie后session将由容器管理自动销毁,跟客户端cookie没有直接关系。
      

  8.   

    首先感谢各位的回答...!!!
    照各位所说,不管Cookie有效期是多长时间,服务端的Session对象是要被销毁的.
    那我下次连接的时候,那根据上次保存在Cookie里的Session ID在服务端已经找不到对应的Session了(应为被销毁了),所以需要重新创建Session,而重新创建Session的话,之前session的东西不都没有了??
      

  9.   

    Cookie设置有效期三个月,和服务器端的Session对象没有关系呀。