91、session.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第九章 使用会话追踪 本节课的内容: 什么是客户会话 会话的工作机制 维护会话的几种方式 跟踪客户会话 使用HttpSession对象维护会话信息 监视会话对象 典型的在线商店的情况: 用户刚刚在一个页面中挑选到一种商品,添加到购物车中,在下一个商品页面中又挑选到一种添加到购物车中。 注意到这两次选择是在不同的HTTP连接中发生的。而用户希望两次挑选的商品在同一个购物车中一起交付,而不是每选一件商品都要交付一次。这就需要一种机制来唯一的标识用户,以便跟踪客户在站点中的行为。 会话: 这种在多次HTTP连接间维护用户与同一用户发出的不同请求之间关联的情况称为维护一个会话(session)。 2、会话的特征 会话能够把用户与同一用户发出的不同请求之间关联起来。不同用户的会话应当是相互独立的。 会话一旦建立就应当一直存在,直到用户空闲时间超过了某一个时间界限,容器才应当释放该会话资源。 在会话的存活期间,用户可能给服务器发送了很多请求,该用户的这些请求信息都可以存储在会话中。 网上购物商店的购物车 在上述的网上商店中,用户的会话信息保存在服务器端,用户与服务器之间必须提供一种机制,标识某一用户与他在服务器端用户状态之间的对应关系。这种机制必须保证: 允许用户在不同页面(如:Servlet)间浏览而不会丢失“购物车” 必须避免不同用户的“购物车”混淆。用户不会允许自己为别的用户付款。 不幸的是通常情况下Web服务器不会自动跟踪用户操作轨迹。捕获并存储用户轨迹是Web应用开发人员的工作。 客户第一次访问网站时,将会话信息添加到由服务器发出的每一个响应的URL中。 当用户再次访问网站时,URL中会把这个会话信息作为用户请求参数返回服务器端,服务器根据返回的会话信息来标识该客户,维护整个会话的信息持续性。 常见的URL重写格式 为了保持URL的简洁,通常这个嵌在URL中的会话信息是一个由服务器生成的代表客户的唯一性的ID号,在URL的表现形式上,它通常是作为URL查询参数的形式出现的,如: http://.../ch09/huihua.jsp?sessionid=678 Session.jsp Tom.jsp Jerry.jsp URL重写技术的优点: 用户是匿名的; 在Web服务器实现上得到普遍的支持; URL重写技术的缺点: 由于会话信息作为查询参数在URL上是可见的,因此会话存在一定的安全隐患; 需要对所有动态生成的URL进行重写,代码比较繁琐; 只能用于动态产生的文档如Servlet和JSP页面,而不能用于HTML文档; 重写的URL不能长期有效 隐藏窗体技术原理 HTML表单允许把一些字段信息隐藏起来,而在浏览器上不被显示出来。例如: INPUT TYPE=“HIDDEN” Name=“session” Value =”…” 使用隐藏窗体技术实现会话管理 这种方式的工作机制为:在用户第一次请求时,服务器在为客户准备的页面上添加一个或多个隐藏表单,把一些要隐藏的信息如标识该客户的ID号存储在那里。当客户提交该表单时,这些信息会作为查询参数返回服务器,服务器可以利用HttpServletRequest对象的getParameter()方法读取出来。这样就达到了在服务器端维护会话信息持续的作用。 可以这样认为,同重写URL技术相比,隐藏窗体技术在表单参数中传递会话信息,而重写URL技术是在GET参数中传递会话信息。除了这点,二者并无根本区别。 上面我们分别说明了如何使用URL重写、cookie和隐藏表单这三种方式来跟踪用户会话。不管采用何种方式,都应实现以下步骤: 1、服务器必须为每个会话产生一个唯一的ID号 2、在服务器和客户浏览器之间传递这个ID号以维持会话 3、服务器端根据ID号维护相关客户的会话信息 Servlet2.3规范定义了一个HttpSession接口,允许Servlet容器针对每一个用户建立一个HTTP会话(即HttpSession对象),每个HTTP会话将会自动被赋予一个唯一的会话编号(session ID),而无需程序员编程实现。 HttpSession对象提供了和ServletContext对象相似的一组会话属性的方法,这样就可以很容易地在服务器端存放用户会话状态。 会话和请求之间的关系 会话维护的就是同一用户的一组请求序列之间的关联性。因此,请求对象和会话对象之间必然存在一定的关系。 换言之,对于Servlet而言,当它处理不同用户发来的不同HttpServletRequest时,应该有能力判断该请求所属的HttpSession。 获取与请求关联的会话对象

文档评论(0)

海川电子书城 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档