新随笔  :: 订阅 订阅  :: 管理

会话管理

Posted on 2014-07-31 16:53  redcoatjk  阅读(233)  评论(0编辑  收藏  举报

会话管理

内容摘录: JSP&Servlet学习笔记(第二版) 林信良

 

会话管理的基本原理

使用隐藏域

隐藏域就是主动告知服务器多次请求之间必要信息的方式之一。以问卷作答为例,上一页的问卷答案,可以用隐藏域的方式放在下一页的窗体中,这样发送下一页窗体时,就可以一并发送这些隐藏域,每一页的问卷答案就可以保存下来。

使用隐藏域的方式,在关掉网页后,显然会遗失先前请求的信息所以仅适用一些简单的状态管理。由于在查看网页源代码时,可以看到隐藏域的值,因此该方法不适用于隐密性高的数据。

隐藏域不是Servlet/Jsp实际管理会话时的机制,在这边实现隐藏域,只是为了说明,由浏览器主动告知必要的信息,为实现web应用程序会话管理的基本原理。

使用cookie

使用URL重写

使用HttpSession

然后就可以通过request.getSession().setAttribute(“login”,user);将登录信息(也叫指令牌)放入session,让web应用程序的内存来存储、管理数据。

浏览器关闭前,浏览器会使用同一个Session实例(分配一个随机的sessionId),程序从中可以获取信息,判定用户的登录情况。

如用户退出,或让会话中止可通过HttpSession.invalidate()方法来注销session

而在session中无法查到有效的指令牌的request,都可以被重跳转到登陆页面,提示用户登录。

注意:可以存放属性对象的地方:

1.HttpRequestServlet .setAttribute()

2.HttpSession .setAttribute()

3.ServletContext. setAttribute()


 

HttpSession会话管理原理

HttpSessionUrl重写

HttpSession默认使用Cookie存储Session ID(浏览器端的依据),如果用户关掉浏览器接受cookie的功能的情况下,还打算使用httpSession,那么可以搭配URL重写。向浏览器发送一段超链接UrlURl后附加Session Id,当用户点击URL时,将Session idget的方式发给web应用程序。

略。

小结

 

 

 

 

 

 

 

 

 





附件列表