网站大量收购独家精品文档,联系QQ:2885784924

Servlet会话跟踪重点.ppt

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

第7章 Servlet会话跟踪 内 容 提 要 7.1 Servlet会话跟踪概述 HTTP协议是无状态的通信协议,即“请求-连接-响应-关闭连接”模式。 当客户端发送请求时,服务器和客户端之间才会建立连接,一旦请求结束,连接就会中断。 由于服务器无法判断多个连接是否来自于同一个客户端,就出现了维持客户端状态的技术,称为会话跟踪技术。 会话跟踪技术可以由以下四种方式实现: 1.Cookie技术 2.Session技术 3.URL重写技术 4.隐藏表单域技术 其中,Session技术是最常用的会话跟踪技术。 7.2 Cookie Cookie是存储在客户端浏览器目录的文本文件,数据量很受限制。 Cookie是由Web服务器发送给客户端的,当客户端再次访问Web服务器时,可从客户端的浏览器读回此信息,以便于服务器用个性化的设置响应客户端的请求。 当浏览器运行时,Cookie存储在RAM中。即使客户端和Web服务器失去连接,Cookie也可以存储在客户端的计算机的硬盘中。当客户端结束其浏览器对话时,即终止所有的Cookie。 利用Cookie可以跟踪并统计用户访问网站的习惯;还可以为用户提供个性化的服务。 Web服务器可以给客户端浏览器发送多个Cookie,一个客户端浏览器也可以存储多个Web服务器提供的Cookie。Cookie只能回送给创建它的Web服务器,而不能回送给其它的Web服务器。 Cookie的大小是有限制的,一个Cookie大小一般限制在4K,浏览器一般最多能存储300个Cookie。 7.2.1 Cookie的生存周期 Cookie是利用网页代码中的HTTP头信息进行传递的。如果浏览器禁用Cookie,则关闭浏览器,Cookie就会消失。 Cookie的保存时间是由其Expires(有效期)属性决定的。服务器可以通过修改Expires属性来修改Cookie的保存时间。如果不设置该属性,则Cookie只在浏览器浏览网页期间有效,一旦关闭浏览器,Cookie会自动消失。 7.2.2 Cookie的创建和使用 Servlet API提供了javax.servlet.http.Cookie类,可以通过构造函数创建Cookie,例如: Cookie c1=new Cookie(“name”,”value”); Cookie只有发送到客户端,才能被使用。Servlet中的HttpServletResponse接口提供了addCookie方法向客户端发送一个HTTP报头。例如: response.addCookie(c1); 服务器端通过HttpServletRequest接口的getCookies()方法可以从客户端读取Cookie。例如: Cookie[] cookies=request.getCookies(); Cookie类的方法 如果创建并发送了Cookie,默认情况下为会话级别的Cookie,即存储在内存中,用户退出浏览器之后,Cookie消失。 如果要把Cookie保存在磁盘上,需要使用setMaxAge方法设置Cookie的生存时间,此种Cookie称为持久化Cookie。 程序7-1 使用Cookie保存用户的访问时间,再次访问时首先显示上一次访问的时间,然后再更新Cookie中的访问时间。如果是第一次访问,则显示第一次访问的信息。Cookie的有效期为30天。 DateServlet.java: … protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //设置Servlet响应类型和编码方式 response.setContentType(text/html;charset=utf-8); PrintWriter out=response.getWriter(); //读取客户端的Cookie,获取上一次的访问时间 Cookie[] cookies=request.getCookies(); Cookie cookie; //获取当前的访问时间并格式化 Date date=new Date(); SimpleDateFormat sdf=new SimpleDateFormat(yyyy-MM-dd hh:mm:ss); String strDate=sdf.format(date); if(cookies!=nullcookies.length0){ for(int i=0;icookies.length;i++){ if(cookies[i].g

文档评论(0)

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

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

1亿VIP精品文档

相关文档