使用cookie记录信息.ppt_第1页
使用cookie记录信息.ppt_第2页
使用cookie记录信息.ppt_第3页
使用cookie记录信息.ppt_第4页
使用cookie记录信息.ppt_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

第8章 使用cookie记录信息,8.1 什么是cookie,什么是Cookies(“小甜饼”)呢? 简单来说,Cookies就是服务器暂存放在你的电脑里的资料(.txt格式的文本文件),好让服务器用来辨认你的计算机。当你在浏览网站的时候,Web服务器会先送一小小资料放在你的计算机上,Cookies 会帮你在网站上所打的文字或是一些选择都记录下来。当下次你再访问同一个网站,Web服务器会先看看有没有它上次留下的Cookies资料,有的话,就会依据Cookie里的内容来判断使用者,送出特定的网页内容给你。,Cookie是设计交互式网页的一项重要技术,它可以将一些简短的数据存储在用户的计算机上,这些存放在用户计算机上的变量数据,称为Cookie。当浏览器向服务器提出网页浏览请求时,服务器根据存储在用户计算机上面的Cookie内容,针对此浏览器显示其专门的内容。 Cookie数据存储的功能由浏览器本身所提供,因此Cookie功能都必须要有浏览器的支持才行,一般通用的浏览器,例如IE都支持此功能。 当用户打开的网页中包含Cookie程序代码,此时服务器端会建立Cookie数据,然后将这个Cookie传送到客户端用户的计算机上。图为Cookie示意图。,当Cookie的数据传送至客户端的计算机后,便存储在浏览器当中,此时服务器端的网页都可以访问这个Cookie的数据内容,而当用户关闭浏览器的时候,Cookie的数据便会消失。 若服务器在建立Cookie时设置了Cookie的存在时间期限,则用户在关闭浏览器后,Cookie的数据会以文本文件存储在用户的计算机上,只要在设置的时间期限内,当用户连接网页时,服务器端的网页均可使用先前Cookie的内容,等到到了所设置的期限后,Cookie中的数据便会自动被删除。,在用户请求访问某个网站上的某个页面时,您的应用程序发送给该用户的不仅仅是一个页面,还有一个包含日期和时间的 Cookie。用户的浏览器在获得页面的同时还得到了这个 Cookie,并且将它保存在用户硬盘上的某个文件夹中。以后,如果该用户再次访问您站点上的页面时,浏览器就会在本地硬盘上查找与该 URL 相关联的 Cookie。如果该 Cookie 存在,浏览器就将它与页面请求一起发送到您的站点,您的应用程序就能确定该用户上一次访问站点的日期和时间。 Cookie 是与Web站点而不是与具体页面关联的。 浏览器一般只允许存放300个Cookie ,每个站点最多存放20个,而且,每个Cookie 大小不超过4KB,并且, Cookie 是有时效性质的。 Cookie 目前有以下两个版本: 版本0 版本1,8.2 Cookie的常见用途,Cookie最根本的用途是Cookie能够帮助Web站点保存有关访问者的信息。 Cookie的两个常见用途。 (1)记录用户历史访问信息 (2)自动登陆,8.3 在JSP中使用Cookie,Cookie实质是服务器端与客户端之间传送的普通HTTP头,可以保存也可不保存在客户的硬盘上。如果保存,每个文件大小不超过4KB的文本文件,多个Cookie可保存到同一个文件中。如果从编程角度来看,在JSP中Cookie就是Java提供的一个类。,8.3.1 创建Cookie,在JSP中Cookie类的构造函数有两个字符串参数,分别代表Cookie的名称和值。 创建Cookie的语法如下: Cookie demoCookie=new Cookie(“CookieName”,” CookieValue”);,8.3.2 设置Cookie属性,表81 Cookie中的方法及其说明,例如,设置Cookie变量的有效周期的语法如下: Cookie 变量名称.setMaxAge(有效周期); 有效周期的时间以秒为单位,时间设置越大,表示Cookie对象的有效时间越长。 Cookie cookie=new Cookie(“username”,”liuyongpo”); Cookie. setMaxAge(30*60);/设置Cookie的存活时间为30分钟 response.addCookie(cookie);,8.3.3 读写Cookie,1.写Cookie 对Cookie进行操作首先是将Cookie保存到客户端。在JSP编程中,利用response对象,通过addCookie方法将Cookie写入客户端。语法如下: response.addCookie(cookie); 例如: String username=request.getParameter(name); Cookie user_name=new Cookie(“cookie_name”,username); response.addCookie(user_name);,2.读Cookie 将Cookie保存到客户端,就是为了以后得到其中保存的数据。 语法如下: Cookie 数组变量名request.getCookies(); 在客户端传来的Cookie数据类型都是数组类型,因此要得到其中某一项指定的Cookie对象,需要遍历数组来找。可通过如下代码实现,”); %,例writeCookie.jsp写入Cookie和readCookie.jsp读取Cookie,10分钟后,8.3.4 几个操作Cookie的常用技巧,(1)获取指定名字的Cookie值 public static String getCookieValue(Cookie cookies, String cookieName, String defaultValue) for(int i=0; icookies.length; i+) Cookie cookie = cookiesi; if (cookieName.equals(cookie.getName() return(cookie.getValue(); return(defaultValue); ,(2)自动保存的Cookie package ch08; import javax.servlet.http.*; public class LongLivedCookie extends Cookie public static final int SECONDS_PER_YEAR = 60*60*24*365; public LongLivedCookie(String name, String value) super(name, value); setMaxAge(SECONDS_PER_YEAR); ,(3)在JSP中如何删除一个Cookie Cookie killMyCookie = new Cookie(“mycookie“, null); killMyCookie.setMaxAge(0); killMyCookie.setPath(“/“); response.addCookie(killMyCookie);,8.4 Cookie对象的应用实例,网上书店定购系统,该实例包含两个JSP文件index.jsp和login.jsp 5个JavaBean: User.java,BookDetail.java,BookDB.java,CookieApply.java和ParamUtils.java程序的业务逻辑都封装在这5个JavaBean中。,BookDetails.java 包含getBookID()和getBookName()两个方法 BookDB.java存放本站点的所有图书。包含getBook()方法 User.java封装了用户信息(uesername,password,usermail)并维护曾经访问过的图书。包括addBookOrdered()方法,把定购图书放到列表中;获取booksOdered变量的迭代子getBookOdered(),CookieApply.java,cookie操作类,该类封装了对cookie操作,并负责维护User对象。该类是本系统的统一入口。 isFistAccess()根据cookie判断用户是否第一次访问,如果不是第一次访问,取出cookie内记录的用户信息,并根据这些信息实例化User类 login()用户登录,将信息写入cookie,并实例化User类 saveCookie()写cookie的通用方法 getCookieBValue()读cookie的通用方法 orderBooks()将用户定购的图书写入Cookie booksOrdered()把图书放到用户的历史订购链表中 unicodeToChinese()将unicode转化为汉字编码,解决汉字乱码问题 chineseToUnicode()将汉字编码转化换为unicode编码,解决汉字乱码问题,8.5 使用Cookie的局限性,Cookie不是一个很严重的安全威胁。 (1)Cookie不能够以任何方式被解释和执行,因此也不能够插入病毒或者攻击系统。 (2)浏览器一般只允许存放300个Cookie ,每个站点最多存放20个,而且,每个Cook

温馨提示

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

评论

0/150

提交评论