session的概念与基本用法
概念:
当用户与服务器连接时,服务器给每个用户一个session,并设定其中内容。
这些session相互独立。
服务器可以借此来辨别用户信息,进而提供个别服务。
session有存在期限。
类:
javax.servlet.HttpSession
内容:用于生成会话信息。
作用域:session
seesion的建立:
request.getSession (true);
在session中加入和删除数据:
setAttribute (String, Object) 设定指定名字的属性,并且把它存储在session对象里
removeAttribute (String) 删除指定属性的属性值跟属性名
取得session中变量内容:
getAttribute(String) 获得指定名字的属性,如果不存在,返回null
getAttributeNames( ) 返回session对象中存储的每一个对象属性
其他常用方法:
getId() 返回session ID
isNew () 判定session是否为新
invalidate() 注销当前的session
getCreactionTime() 返回session创建时间
getLastAccessedTime () 返回seesion最后访问时间
session的存在期限:
getMaxInactiveInterval () 返回seesion存在期限
setMaxInactiveInterval () 设定seesion存在期限
注意:session对象中保存和检索的信息不能是基本数据类型,如int,double等,而必须是java的相应对象,如Integer,Double等。
session的生命周期
在以下情况下将会结束生命
客户端关闭浏览器
Session过期
服务器调用invalidate()方法
session跟踪
1.利用cookie进行跟踪,就是说服务器会把sessionid写入cookie中
2.再浏览器不支持cookie下还可以采用url回写的方法,就是将sessionid写入url中进行传递
调用的方法是, resquet.encodeURl("*.jsp")
session持久化
好处:1.再访问量过大的时候,可以把不活动的session转移到文件或者数据库中,这样可以节省服务器内存
2.如果web服务器突然中断,或者重新启动,客户端的影响也不大
实现的办法主要是再服务器断进行配置.