Session

Session简介:
类型:HttpSession
作用:区分不同用户
Session工作原理:
Session的创建
Session的创建时机是在request.getSession()方法第一次被调用时。
Session被创建后,同时还会有一个名为JSESSIONID的Cookie被创建。
这个Cookie的默认时效就是当前会话。
Session的使用
Session被创建后,对应的Cookie被保存到浏览器中,之后浏览器每次访问项目时都会携带该Cookie。
当我们再次调用时会根据该JSESSIONID获取已经存在的Cookie,而不是在创建一个新的Cookie。
如果Cookie中有JSESSIONID,但是JSESSIONID没有对应的Session存在,则会重新创建一个HttpSession对象,并重新设置JSESSIONID。
在这里插入图片描述
Session使用:
创建&获取:
html&servlet:request.getSession();
jsp:运行jsp页面。直接使用
setAttribute() getAttribute() removeAttribute()
Session有效性:
默认情况:与Cookie一致,会话级别。
持久化Session:

  1. 持久化特殊的Cookie(key:JSESSIONID)
  2. 持久化Session(30分)
    web.xml
<session-config>
			<session-timeout>30</session-timeout>
</session-config>

 session.setMaxInactiveInterval(ss):设置session的非活动时间
ss>0:在ss秒后失效
ss=0:立即失效
ss<0:永不失效
设置session失效:session.invalidate()

Session钝化和活化:
钝化:
定义:将session对象及session中存放数据一同从内存序列化到硬盘的过程,称之为钝化。
时机: 关闭服务器触发
活化::
定义:将session对象及session中存放数据一同从硬盘反序列化到内存的过程,称之为活化。
时机:重启服务器触发
表单重复提交问题:

  1. 转发跳转页面后,刷新页面。
  2. 提交表单后,点击回退按钮
  3. 网速慢等情况
    使用token解决表单重复提交:
    token本质UUID,UUID是一个32位的随机数(全球唯一)
    步骤:
  4. 创建UUID,同时存放到session域和隐藏域。
  5. 提交表单,分别获取两个域中的UUID,进行比较
    相等:提交表单,移除session域中的UUID
    不等:不提交表单
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值