第三章基于Servlet的会话跟踪(一).docVIP

  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文档。上传文档
查看更多
第三章基于Servlet的会话跟踪(一)

基于Servlet的会话跟踪(一) 本章技能目标: 理解会话跟踪的原理 会使用获得HttpSession对象的方法 会使用HttpSession对象进行数据的存储 HTTP协议的无状态 HTTP协议是无状态的,也就是说,如果我们仅使用Http协议是不能够进行用户状态的跟踪的。 会话跟踪 什么是会话? 在Java Servlet API 中引入session机制来跟踪客户的状态。Session指的是一段时间内,单个用户与Web服务器的一连串相关的交互过程, 如何进行会话跟踪的? 在Servlet API中定义了javax.servlet.http.HttpSession接口,Servlet容器必须实现这个接口。 当一个session开始时,Servlet容器创建一个HttpSession对象,并同时在内存中为其开辟一个空间,在HttpSession对象中可以存放客户状态的信息(例如:购物车)。 Servlet容器为HttpSession分配一个唯一标识符,称为SessionID。Servlet容器把SessionID保存在客户的浏览器中。每次客户发送HTTP请求时,Servlet容器可以从HttpSession对象中读取SessionID,然后根据SessionID找到相应的HttpSession对象,从而获取客户的状态信息。 会话的创建和使用 会话的创建 Servlet中的HttpRequestServlet对象为我们提供了以下两种创建和获取HttpSession对象的方法。 HttpSession session request.getSession Boolean value ; HttpSession session request.getSession ; 区别: 在第一种方法中,布尔值为true时,如果存在与当前请求关联的会话,就会返回该会话,否则就创建一个新会话,并返回。布尔值为false时,如果存在与当前请求关联的会话,就返回该会话,否则返回NULL,不再创建会话。 第二种方法等同于第一种方法中的布尔参数为true的情况。 会话的使用 在Javax.servlet.http.HttpSession接口定义的方法,我们常用的是有关数据存储的方法。 session.setAttribute String name, Object value ; session.getttribute String name ; 注意:在取出数据时,需要类型转换。 HttpSession对象存在的周期 HttpSession对象的创建 当客户端浏览器第一次访问服务器时,服务器为每个浏览器创建了不同的HttpSession对象。在服务器端使用request.getSession()方法来获得HttpSession对象。并以此来使用HttpSession接口为什么提供的方法。 HttpSession对象的使用 在创建HttpSession对象后,使用该对象进行数据的存储,以进行数据的传递,在此过程中我们常用的方法如下。 (1) void set Attribute String name, Object value ; //进行数据的存储。 (2)Object getAttribute String name ; //进行数据的读取。 HttpSession对象的结束 在以下3种情况,可以结束session 关闭浏览器,关闭session 调用HttpSession的invalidate 方法,删除HttpSession对象和数据。 两次访问时间间隔大于session定义的非活动时间间隔。 网页计数器 HttpSession技术不属于HTTP协议的范围内,它是因为HTTP协议不能满足对用户的跟踪而产生的一直技术,它是由Web服务器为程序提供的服务。 Session是由服务器也就是Web容器创建的,我们使用request.getSession 来获得HttpSession对象,使用session.setAttribute 进行数据的保存,而使用session.getAttribute 来获得session内以保存的值。 在使用session进行数据存储的时候,需要考虑该数据是否合适被存入session中,如果是当前用户经常使用的数据,则可以存入session中。如果用户只用了一次,不要使用或者偶尔才使用一次的数据,则不要存入session中,因为这样会增加系统资源的浪费。 总结: 在Web项目中使用session,是为了跟踪用户状态,并区分不同的用户。 会话是Web容器创建的,而不是由程序员编码创建的,当客户端第一次访问的服务器的时候,服务器会为客户创建一个session/ 结束session有以下3中方式: 关闭浏览器

文档评论(0)

dashewan + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档