![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
session的原理
3个回答
展开全部
网上对于session的讲解很多,我就说说自己的理解吧
1.session是通过键值对存储的。也就是说一个变量名对应一个值,session一般存储在内存中,存储时,输入变量名和值就可以
2.与session类似的有cookie,request,application等等,原理大多一样,区别就在于这些变量的存储有效期和存储范围,cookie一般的有效期根据系统设置不同而不同,主要用在比如用户登录方面,简单来说关闭浏览器时cookie的内容也不会消失。session和cookie差不多,区别就在于关闭浏览器后变量就失效了。
request只是存在于一次画面请求中,也就是说画面提交之后,变量就失效了。
application是全局的,每个用户都会调用到该变量,比如帖子的浏览量信息。
1.session是通过键值对存储的。也就是说一个变量名对应一个值,session一般存储在内存中,存储时,输入变量名和值就可以
2.与session类似的有cookie,request,application等等,原理大多一样,区别就在于这些变量的存储有效期和存储范围,cookie一般的有效期根据系统设置不同而不同,主要用在比如用户登录方面,简单来说关闭浏览器时cookie的内容也不会消失。session和cookie差不多,区别就在于关闭浏览器后变量就失效了。
request只是存在于一次画面请求中,也就是说画面提交之后,变量就失效了。
application是全局的,每个用户都会调用到该变量,比如帖子的浏览量信息。
展开全部
1、session的存放处
容器为每个部署的web应用维护一个context,每个context与一个manager关联,这个manager就管理着所有的session。
2、session的产生时机
当用户在某个地方请求session的时候,实际是这样的:request请求session,首先会找到关联的servletcontext,然后由这个servletcontext找到关联的context,然后由context找到关联的manager,然后调用它的获取session的方法,如果session不存在,则为其创建一个,返回。
3、session的超时
容器有后台线程在执行一些周期性的任务,而检查session是否超时就是其中之一。默认tomcat的session的超时是30分钟,这个值是设置在context的。当后台线程判断出一个session的最后访问时间距离当前的时间时长大于设置的最大空闲时间时,就会将其收回,即失效了。
容器为每个部署的web应用维护一个context,每个context与一个manager关联,这个manager就管理着所有的session。
2、session的产生时机
当用户在某个地方请求session的时候,实际是这样的:request请求session,首先会找到关联的servletcontext,然后由这个servletcontext找到关联的context,然后由context找到关联的manager,然后调用它的获取session的方法,如果session不存在,则为其创建一个,返回。
3、session的超时
容器有后台线程在执行一些周期性的任务,而检查session是否超时就是其中之一。默认tomcat的session的超时是30分钟,这个值是设置在context的。当后台线程判断出一个session的最后访问时间距离当前的时间时长大于设置的最大空闲时间时,就会将其收回,即失效了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我理解的session是把一些变量存放到里面,在哪用到都能用到,它可以跨页面式的提交东西,比post取值要方便
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询