sesseion的使用及注意事项

一、session简介

Session是保存在服务器端的会话技术。
作用:就是用来保存会话中产生的数据。

Session本质是一个域对象。像一个MAP集合,存在key和value
作用范围:会话范围(存在多次请求)
Session技术不是http协议特有的,而是javaee独有的,所以仅javaee能使用
入门案例:
获取session:request.getSession();


二、getSession的执行原理

第一次执行getSession方法,getSession会去请求头中寻找Cookie信息,Cookie名字:JSESSIONID。第一次执行没有这个cookie信息,所以直接创建一个新的Session对象,并将Session的ID,保存到Cookie中,发给浏览器。

 

                   第N次执行getSession方法,getSession会去请求头中寻找Cookie信息,如果Cookie中没找到,就创建一个新的。

                   如果Cookie中有Jsessionid信息,寻找内存中对应的Session对象,如果找不到,重新创建一个新的,并且写新的JSESSIONID进入cookie;

                   如果CookieJsessionid信息可以对应上Session对象,就直接将这个Session对象返回并使用。

 

                   getSession()    ==   getSession(true)

                   getSession(false);   --à唯一区别是,如果找不到session对象,直接返回null

三、Session的生命周期
创建:第一次调用getSession方法(第一次来银行)
销毁:
①服务器关闭(银行倒闭)
②Session对象如果30分钟之内没有任何获取或者设置操作,就会过期,过期了,服务器就会把session指向维护断掉,GC就会在某一个时间段进行回收销毁
尽量不要低于10分钟
<session-config>
        <session-timeout>30</session-timeout>
    </session-config>
③主动销毁session对象。    Session对象. Invalidate()

四、session常用方法

方法声明                     功能描述
String getId()                   用于返回与当前HttpSession对象关联的会话标识号
就是抓到的JSESSIONID
boolean isNew()        判断当前HttpSession对象是否是新创建的
void invalidate()       用于强制使Session对象无效
强制销毁session对象。
不会影响COOKIE的写入
ServletContext getServletContext()            用于返回当前HttpSession对象所属于的WEB应用程序对象,即代表当前WEB应用程序的ServletContext对象(与this.调用无区别)
void setAttribite(String name,Object value)     用于将一个对象与一个名称关联后存储到当前的HttpSession对象中
String getAttribute()           用于从当前HttpSession对象中返回指定名称的属性对象
void removeAttribute(String name)   用于从当前HttpSession对象中删除指定名称的属性

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值