我什么时候说过session是完全存在硬盘上的,偶只是说服务器有自己的策略会将相当部分的不是用户关闭浏览器就超时的session在硬盘上保存。
我什么时候说过session是完全存在硬盘上的,偶只是说服务器有自己的策略会将相当部分的不是用户关闭浏览器就超时的session在硬盘上保存。
不过sinio_feng提醒了我,确实可以自己将本来应该存到session中的数据存到硬盘中,如果session中的数据量比较大且session比较多的化,但是我认为一定要在内存中有一个缓存,可以按LRU来实现
话题跑远就跑远,互相学习麻,大家并不是完全为了楼主的那个问题才进来的
> sion在硬盘上保存。
别急,cool down,
我说的可能不对,我觉得超时的session就失效了,进回收站了。保存的意义何在?毕竟session是时间敏感的,不象存储在数据库中的数据那样持久。
不过我认为这应该是特定应用的逻辑(当然也可以做的通用一点),而不是服务器应该管的。
代价是需要自己写一些程序
我真的很后悔我干吗要进这个thread。
>>HttpSession没有实现序列化接口,但只要服务器特定的子类能实现,就可以序列化到硬盘上
AreYouOK,你有点误会我的意思,其实我想说的不是HttpSession需要实现序列化接口,而是HttpSession中setAttribute的对象应该实现序列化,所以就算服务器特定的子类能实现,如果你程序里面set到Session里面的对象不是序列化的,一样白费。
偶对session的理解事它是为了解决http协议的无状态性引入的一种补充技术和协议。session的具体实现可能和各个服务器是相关的,但它的机制是大体一样,和语言无关的,所以,你说一个session不可钝化所以不可能是存在磁盘上的,觉得这是从理论上根本说不同的,毕竟session这种东西在各种服务器及web技术中都存在的,但不是每种语言都是面向对象的。
robbin,其实心很细,对技术细节也是研究很透的。呵呵,那两个BT的问题,robbin至少还有个解释。谢了先。
大家交流一下而已,不要把问题撤到感情的辩论和人身的攻击就是了。
你请求一个页面生成一个session,并存入一个String对象实例,取到一个sessionID,然后关闭服务器,再重起,
然后输入上次得到的sessionID,并读取其中原先存入的对象实例,会发现是可以取到的,
useImage.jsp;jsessionid=3727E65B24F9060B53670EBE74074502
我看到这里的讨论,就注册一个进来了,不好意思,我也说了一点,