领取免费IT资料 加群:272292492
更多文章:www.f-z.cn
一、Session对象
session对象最主要的用处就是完成用户的登录(login)、注销(logout)等常见功能的,每一个session对象都表示不同的访问用户,session对象是javax.servlet.http.HttpSession接口的实例化对象,所以session只能应用在HTTP协议中。
二、HttpSession接口的主要方法
Public String getId() //取得SESSION ID
Public long getCreationTime() //取得SESSION的创建时间
Public long getLastAccessedTime() //取得SESSION的最后一次操作时间
Public boolean isNew //判断是否是新的SESSION(新用户)
Public void invalidate() //让SESSION失效
Public Enumeration getAttributeNames() //得到全部属性的名称
三、Session ID
取得Session id
当一个用户连接到服务器之后,服务器会自动为此session自动分配一个不会重复的Session Id,服务器依靠这些不同的Session Id来区分每一个不同的用户,在WEB中可以使用HttpSession接口中的getId()方法取得这些编号。
session在进行操作的时候使用到了cookie的处理机制 ,有一点必须说明的是,服务器关闭后,session id肯定需要重新分配,若想使服务器关闭后,session id也可以继续保留,那么就需要使用到了序列化的机制。
所谓的对象序列化指的是一个对象通过二进制保存或进行传输,而且对象所在的类必须实现Java.io.Serializable接口,对于session本身也可以完成这种序列化的操作,但他不是手工完成的,而是需要自动配置完成,这个配置需要在server.xml中完成。
注:
配置中元素是专门用来配置session管理操作的,该元素中每个属性的作用如下:
1.className:session的管理器操作类,Tomcat通过此接口完成序列化管理。
2.debug:session管理器的跟踪级别
3.saveOnRestart:配置服务器重新启动前对session的处理,可以配置true或false两种选项,如果为true则会在容器关闭前将有效的session保存,重新启动后重新载入。
4.maxActiveSession:可以活动的session的最大数。如果设置为-1,则表示不受限制,超过最大限制会将session对象转移到Session Store中。
5.minIdleSwap:一个session不活动的最短时间,单位为秒。如果设置为-1,则表示不受限制,超过该时间会将session对象转移到Session Store中。
6.maxIdleSwap:一个session不活动的最长时间,单位为秒。如果设置为-1,则表示不受限制,超过该时间会将session对象转移到Session Store中,该session不再内存中保存。
7.maxIdleBackup:session的最长时间,单位为秒。如果设置为-1,则表示不受限制,超过该时间会将session对象备份到Session Store中,但该session对象依然存在于内存中。
8.元素:定义实现持久化session的操作类及指定的文件存放位置。本程序将序列化的session保存在”d:\temp”文件夹中,每一个保存的session都是通过文件保存的,文件的命名规范是sessionid.session。
以上配置完成后,即使服务器中间关闭了,一个用户的session也可以通过此配置进行反序列化的恢复。
四、登录及注销
Login.jsp:完成登录表单的显示,同时想页面本身进行数据提交,以完成登录的验证,如果登录成功(用户名和密码固定:Joywy/1111),则保存属性;如果登录失败,则显示登录失败的信息。
Welome.jsp:此页面要求在用户登录完成之后才可以显示登录成功的信息,如果没有登录,则要给出未登录的提示,同时给出一个登陆的连接地址。
logout.jsp:此功能完成登录的注销,注销之后,页面要跳转会login.jsp,等待用户继续登录。
login.jsp
welcome.jsp
logout.jsp
会话跟踪还有以下的四种技术:
1.通过session提供的保存
2.通过Cookie
3.通过表单的隐藏域完成
五、判断新用户
在session的对象中可以使用isNew()方法判断一个用户是否是第一次访问页面
六、取得用户操作时间
如果要想取得一个session的具体的操作时间,可以通过计算方法取得。