永发信息网

jsp中session什么时候创建呢?

答案:3  悬赏:50  手机版
解决时间 2021-01-14 11:44
  • 提问者网友:富士山上尢
  • 2021-01-14 06:16
jsp中session什么时候创建呢?
最佳答案
  • 五星知识达人网友:纵马山川剑自提
  • 2021-01-14 06:27
一般情况下,不管向服务器发送了多少次请求,只有当开始向Session中存储会话状态数据时,Session对象的生命周期才算真正开始,这一点不同于Cache和Application对象(Application对象的生命周期开始于向网络应用程序发送第一个请求时)。当Session对象为空,Session对象的生命周期还没有开始,Session ID Manager会为每一个请求页面赋予一个新的session ID,且每一次请求都不相同,直到有数据存储在Session对象中时,就按照图2所示的过程进行会话状态维护。有两个事件与Session对象的生命周期密切相关,分别是Session_OnStart(会话开始)和Session_OnEnd(会话结束)。如果为Session_OnStart事件定义了处理程序(event handler),那么Session的生命周期从第一次请求该页面就开始,该页面的Session ID一被赋予就不再改变,Session即使为空也会被存储,因此,从性能的角度考虑,只有在必要时才为Session_OnStart事件定义事件处理程序。Session_OnEnd事件只有在InProc模式下,且Session已经存在的前提下才能被触发,这是因为该事件是由Cache对象在删除失效的Session对象时触发,可在该事件的处理程序中通过编码终止Session对象。
最后,再补充一点。由上面的讨论可知,Session 对象的实现与Cache对象有着密切联系,尤其是再InProc模式下,但是Session不能提供和Cache那样丰富的缓存过期和依赖机制。在InProc模式下,Session对象中的数据是否失效,只能通过设定sliding time来控制,即在指定的时间间隔内没用使用Session中的数据,数据自动删除。且考虑Cache自身的特点,Session中的数据也可能在服务器端内存资源不足的情况下,由于内存回收而丢失。
全部回答
  • 1楼网友:猎心人
  • 2021-01-14 07:42
如果jsp中没有禁用session的话,那么jsp中的session是在jsp转换为servlet时创建的,过滤器是作用在servlet之前,所以request.getSession()确实是创建了session,不调用则没有创建session。
  • 2楼网友:煞尾
  • 2021-01-14 07:09
估计你问的。session什么时候创建。session是用户第一次访问的时候就创建了。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯