《Java Web技术及案例开发》 课件第3、4章 Servlet会话跟踪、 JSP基础.pptx

《Java Web技术及案例开发》 课件第3、4章 Servlet会话跟踪、 JSP基础.pptx

  1. 1、本文档共75页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

第3章Servlet会话跟踪;本章思维导图;本章目标;会话跟踪技术是一种在客户端与服务器间保持HTTP状态的解决方案。从开发角度考虑,是使上一次请求所传递的数据能够维持状态到下一次请求,并且辨认出是否相同的客户端所发送出来的。

会话跟踪技术的解决方案主要分为以下几种:

Cookie技术

Session技术

URL重写技术

隐藏表单域技术;Cookie技术是一种在客户端保持会话跟踪的解决方案。

Cookie是指某些网站为了辨别用户身份而储存在用户终端上的文本信息(通常经过加密)。

Cookie在用户第一次访问服务器时,由服务器通过响应头的方式发送给客户端浏览器;

当用户再次向服务器发送请求时会附带上这些文本信息。

通过Cookie,服务器在接收到来自客户端浏览器的请求时,能够通过分析请求头的内容而得到客户端特有的信息,从而动态生成与该客户端相对应的内容。

;Cookie对象通过javax.servlet.http.Cookie类的构造方法来创建。

【示例】

其中,Cookie类的构造方法需要两个参数:

第一个String类型的参数用于指定Cookie的属性名;

第二个String类型的参数用于指定属性值。

;HttpServletResponse对象通过addCookie()方法,以增加“Set-Cookie”响应头的方式(不是替换原有的)将Cookie对象响应给客户端浏览器,存储在客户端机器上。

【示例】

其中:

参数为一个Cookie对象

;存储在客户端的Cookie,通过HttpServletRequest对象的getCookies()方法获取,该方法返回所访问网站的所有Cookie的对象数组,遍历该数组可以获得各个Cookie对象。

【示例】

;在默认情况下,Cookie只能被创建它的应用获取。Cookie的setPath()方法可以重新指定其访问路径,例如:将其设置为在某个应用下的某个路径共享,或者在同一服务器内的所有应用共享。

【示例】设置Cookie在某个应用下的访问路径

【示例】设置Cookie在服务器下所有应用的访问路径

;Cookie有一定的存活时间,不会在客户端一直保存。

默认情况下,Cookie保存在浏览器内存中,在浏览器关闭时失效,这种Cookie也称为临时Cookie(或会话Cookie)。

若要使Cookie较长时间的保存在磁盘上,可以通过Cookie对象的setMaxAge()方法设置其存活时间,保存在磁盘上的Cookie也称为持久Cookie。

;Cookie对象可以通过setMaxAge()方法设置其存活时间,时间以秒为单位:

时间若为正整数,表示其存活的秒数;

时间若为负数,表示其为临时Cookie;

时间若为0,表示通知浏览器删除相应的Cookie。

【示例】设置存活时间为1周的持久Cookie

;Cookie的缺点主要集中在其安全性和隐私保护上,主要包括以下几种:

Cookie可能被禁用,当用户非常注重个人隐私保护时,很可能会禁用浏览器的Cookie功能;

Cookie是与浏览器相关的,这意味着即使访问的是同一个页面,不同浏览器之间所保存的Cookie也是不能互相访问的;

Cookie可能被删除,因为每个Cookie都是硬盘上的一个文件,因此很有可能被用户删除;

Cookie的大小和个数受限,单个Cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个Cookie;

Cookie安全性不够高,所有的Cookie都是以纯文本的形式记录于文件中,因此如果要保存用户名密码等信息时,最好事先经过加密处理。

;Session技术是指使用HttpSession对象实现会话跟踪的技术,是一种在服务器端保持会话跟踪的解决方案。

HttpSession对象是jakarta.servlet.http.HttpSession接口的实例,也称为会话对象。该对象用来保存单个用户访问时的一些信息,是服务器在无状态的HTTP协议下用来识别和维护具体某个用户的主要方式。

HttpSession对象会在用户第一次访问服务器时由容器创建,当用户调用其失效方法(invalidate()方法)或超过其最大不活动时间时会失效。在此期间,用户与服务器之间的多次请求都属于同一个会话。

服务器在创建会话对象时,会为其分配一个唯一的会话标识——SessionId,在用户随后的请求中,服务器通过读取SessionId属性值来识别不同的用户,从而实现对每个用户的会话跟踪。

;HttpServletRequest接口提供了获取HttpSession对象的方法:

【示例】获取HttpSession对象;HttpSession接口提供了存取会话域属性和管理会话生命周期的方法:

;【示例】存取会话域属性:

;【示例】获取会话的最

文档评论(0)

lai + 关注
实名认证
内容提供者

精品资料

版权声明书
用户编号:7040145050000060

1亿VIP精品文档

相关文档