web(servletjsp)会话管理(注册和登陆)课件_第1页
web(servletjsp)会话管理(注册和登陆)课件_第2页
web(servletjsp)会话管理(注册和登陆)课件_第3页
web(servletjsp)会话管理(注册和登陆)课件_第4页
web(servletjsp)会话管理(注册和登陆)课件_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、web(servletjsp)会话管理(注册和登陆)Servlet 和会话管理授课讲师:颜鹏飞web(servletjsp)会话管理(注册和登陆)本章目标在完成本单元的学习后,您将能够: 了解为什么需要进行会话管理 说明各种会话管理技术 了解容器在会话管理中的角色 编写需要会话跟踪的应用程序 在会话跟踪应用程序中应用最佳做法web(servletjsp)会话管理(注册和登陆)为什么需要会话管理? HTTP 不支持维护客户机状态 会话管理对交互式应用程序(例如,在线购物、电子邮件等)日益重要 Web 应用程序的个性化可以通过会话管理来达到HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速

2、的方式,适用于分布式超媒体信息系统。HTTP协议的主要特点可概括如下:1.支持客户支持客户/服务器模式服务器模式。2.简单快速:简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。3.灵活:灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。4.无连接:无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。5.无

3、状态:无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。web(servletjsp)会话管理(注册和登陆)容器进行的会话管理客户机客户机请求请求 2 (SessionId=123456)Session Id=123456请求请求 3 (SessionId=123456)Web 容器容器由容器生成的由容器生成的 Session Id=123456。Web 服务器服务器ValidatorServlet调用方法 getSession

4、()请求请求 1(UserName, Password)web(servletjsp)会话管理(注册和登陆) Cookie URL 重写 隐藏字段会话管理技术web(servletjsp)会话管理(注册和登陆)定义:定义:cookie 是 Web 服务器发送给客户机的一段文本信息,它存储在客户机的硬盘上,对于发送给同一服务器的后续请求,由客户机返回Cookie服务器是如何将 cookie 发送给客户机的?-通过 HTTP 响应的 Headercookie 是如何存储在客户机中的?存储在哪里?-以文件形式存储在客户机硬盘上浏览器如何将 cookie 发送回服务器?-作为发送给服务器的请求的一部分

5、web(servletjsp)会话管理(注册和登陆)Cookie 和会话管理应用程序将 SessionID 作为 cookie 存储在客户机中客户机对向应用程序做出的后续请求返回 SessionId应用程序使用 SessionID 来标识客户机web(servletjsp)会话管理(注册和登陆)定义:来自参与会话的客户机的两个连续请求之间的最长允许空闲时间称为会话超时阶段会话超时阶段web(servletjsp)会话管理(注册和登陆)示例:(Servlet07Cookie)课程演示(关于 Cookie 的存储和检索的演示)web(servletjsp)会话管理(注册和登陆)SessionID

6、追加到 URL 中例如,Web 页面中的以下链接:被重写为URL 重写(浏览器禁止使用Cookie时才有效)web(servletjsp)会话管理(注册和登陆)课程演示课程演示(URL 重写的重写的)示例:(Servlet08Session)重写URL的代码response.encodeURL( /SessionServlet/B3SessionInfo?name=云长&nickname=大刀B3SessionInfo?name=云长)web(servletjsp)会话管理(注册和登陆) 该方法类似于 URL 重写 服务器将隐藏字段嵌入呈现给用户的每个 HTML 表单,而不是重写 UR

7、L 在提交该页面时,客户机将名称 - 值对发送给服务器例如,如果 SessionID 是 1FF35618D5CEDFF538320ABB17B88B46 ,它将如下所示隐藏在表单中: 隐藏字段(不用看)隐藏字段(不用看)web(servletjsp)会话管理(注册和登陆)课程演示(隐藏字段 【可以不了解】)示例:(Servlet08Session)难点:通过SessionID获取Session对象web(servletjsp)会话管理(注册和登陆)URL 重写和隐藏字段HTML 文档包含 HTML 表单和超链接必须重写所有超链接的 URL 且所有 HTML 表单必须包含含有 SessionI

8、D 的隐藏字段因此,结合使用 URL 重写和隐藏字段来保留会话信息web(servletjsp)会话管理(注册和登陆)会话跟踪方法如何在各种会话跟踪技术中进行选择?答案是:在使用 Servlet 的情况下,的情况下,Web 容器负责提供容器负责提供维护会话的基本工具维护会话的基本工具。Servlet 规范允许 Web 容器使用 URL 重写、cookie实际使用的技术取决于驻留 Servlet 的 Web 容器提供的工具和客户机的浏览器提供的支持web(servletjsp)会话管理(注册和登陆)会话管理 APIJava Servlet API 的接口: HttpServletRequest

9、和 HttpSession 使 Servlet 能够使用 Web 容器的会话管理功能访问会话对象用于创建会话和跟踪 HttpSession 对象的 HttpServletRequest 接口的方法是:public HttpSession getSession()public HttpSession getSession(boolean)web(servletjsp)会话管理(注册和登陆)HttpSession 接口HttpSession 接口的方法 getMaxInactiveInterval()setMaxInactiveInterval(int)isNew() invalidate() s

10、etAttribute(String, Object)getAttribute(String)getAttributeNames() removeAttribute(String name)web(servletjsp)会话管理(注册和登陆)示例:(Servlet09LoginAndLogout)课程演示(登陆和退出)web(servletjsp)会话管理(注册和登陆)会话最佳做法 确保将要存储在 HTTP 会话中的对象实现 Serializable 接口避免在会话中存储不可序列化的对象,如数据库连接和输入输出流对象提供对会话属性的同步访问,这些会话属性将由多个 Web 容器访问在完成时释放 HttpSession 对象不要试图在 Servlet 外部重用 HttpSession 对象web(servletjsp)会话管理(注册和登陆)小结现在您已经

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论