session对象主要用于保存用户的各种信息,知道它的生命周期(一般是900S)超时或者被人为释放为止
可以通过session对象来判断此用户是否是合法用户
在服务器上通过session来区分每一个上网用户
session对象属于javax.servlet.http.HttpSession接口的实例化对象
session属于HTTP协议范畴之内的对象,所以只有唯一的一个http包下有此接口,没有任何继承关系
用户只要一连接服务器则立刻分配一个session给用户
session的主要方法:
服务器上通过session来分别不同的用户-->sessionID:任何连接到服务器上的用户,服务器都会为之分配唯一一个不会重复的sessionID
sessionID是由服务器同意管理的,人为不能控制
方法:session.getId()
sessionID的长度为32位
判断是不是新的session
Public boolean isNew(),判断当前的session是否是新建立的session
session的属性设置
设置属性setAttribute()
取得属性getAttribute()
删除属性removeAttribute()
通过session能够对用户是否登陆做出验证
★用户注销:让用户的session失效
若用户的session失效,则在session所保留的全部操作也会消失
方法:Public Void invalidate()使session失效(需手工操作)
若session长时间不被使用,也会自动失效
得到session的创建时间
方法:Public long getCreationTime(),此方法返回一个long类型,通过Date类可以取得一个完整的时间
取得用户最后一次操作的时间
方法:Public long getLastAccessedTime()
用户在线时间=session最后一次操作时间-session创建时间
session与Cookie区别:
session将信息保存在服务器上而Cookie保存在客户端上
session比Cookie更安全,session比Cookie更占资源
开发原则:
sessiom要尽量少使用--尽量少向session中保存信息
session使用Cookie机制,若Cookie被禁用,则session也无法使用
[原文出处:http://blog.csdn.net/roader2046/archive/2008/01/31/2074748.aspx]