null第6章 使用Cookie记录信息第6章 使用Cookie记录信息null本章学习目标:
了解Cookie的基本概念
掌握在JSP中创建Cookie的方法
掌握在JSP中读写Cookie的方法
掌握设置Cookie存在期限的方法
了解Cookie的安全问题
null6.1 Cookie的概念和特性
6.2 在JSP中使用Cookie
6.3 Cookie对象的应用实例
6.4 Cookie的安全问题
6.1 Cookie的概念和特性6.1 Cookie的概念和特性Cookie是
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
交互式网页的一项重要技术,它可以将一些简短的数据存储在用户的计算机上,这些存放在用户计算机上的变量数据,称为Cookie。当浏览器向服务器提出网页浏览请求时,服务器根据存储在用户计算机上面的Cookie内容,针对此浏览器显示其专门的内容。6.1.1 什么是Cookie6.1.1 什么是CookieCookie是服务器发送给浏览器的体积非常小的纯文本信息,用户以后访问同一个Web服务器时浏览器会把他们原样发送给服务器。通过让服务器读取他原先保存到客户端的信息,网站能够为浏览者提供一系列的方便,例如在线交易过程中标识用户身份、安全需求不高的场合避免用户重复输入名字和密码、门户网站的主页制定、有针对性地投放广告,等等。
Cookie数据存储的功能由浏览器本身所提供,因此Cookie功能都必须要有浏览器的支持才行,一般通用的浏览器,例如IE都支持此功能。
当用户打开的网页中包含Cookie程序代码,此时服务器端会建立Cookie数据,然后将这个Cookie传送到客户端用户的计算机上。
nullCookie示意图null*6.1.2 Cookie的常见用途6.1.2 Cookie的常见用途Cookie的常见用途如:
(1)网站浏览人数管理
(2)按照用户的喜好定制网页外观
(3)在电子商务站点中实现诸如“购物篮”等功能
Cookies给网站和用户带来的好处非常多:
Cookie能使站点跟踪特定访问者的访问次数、最后访问时间和访问者进入站点的路径。
Cookie能告诉在线广告商广告被点击的次数 ,从而可以更精确的投放广告。
Cookie有效期限未到时,Cookie能使用户在不键入密码和用户名的情况下进入曾经浏览过的一些站点。
Cookie能帮助站点统计用户个人资料以实现各种各样的个性化服务。6.1.3 对Cookie进行适当设置6.1.3 对Cookie进行适当设置null6.2 在JSP中使用Cookie6.2 在JSP中使用Cookie6.2.1创建Cookie
Cookie是由Javax.servlet.http.Cookie类所衍生出来的对象,建立Cookie的语法如下:
Cookie objCookie = new Cookie(indexValue,stringValue)
从上面的语法中可以看出,一个Cookie对象必须包含有一个特定的indexValue索引值与字符串类型的数据内容stringValue。例如:
Cookie c = new Cookie("mycookie","Cookie Test");
建立了Cookie之后,该Cookie数据还必须传送到客户端,用addCookie方法发送一个HTTP Header。传送的方式为:response.addCookie(objCookie)。
6.2.2 读写Cookie6.2.2 读写Cookie1.写Cookie
对Cookie进行操作首先是将Cookie保存到客户端。在JSP编程中,利用response对象,通过addCookie方法将Cookie写入客户端。语法如下:
response.addCookie(cookie);
例如:
<%//从提交的HTML
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
单中获取用户名
String username=request.getParameter(name);
Cookie user_name=new Cookie("cookie_name",username);//创建一个Cookie
response.addCookie(user_name);
%>
null2.读Cookie
将Cookie保存到客户端,就是为了以后得到其中保存的数据。调用HttpServletRequest的getCookies得到一个Cookie对象的数组
语法如下:
Cookie[] 数组变量名=request.getCookies();
在客户端传来的Cookie数据类型都是数组类型,因此要得到其中某一项指定的Cookie对象,需要遍历数组来找。null<%
Cookie[] Cookies=request.getCookies();//创建一个Cookie对象数组
if(Cookies=null
out.print("none any Cookie ");
else
{
for (int i=0;i< Cookies.length;i++){
//设立一个循环,来访问Cookie对象数组的每一个元素
if(Cookies[i].getName().equals("cookie_name"))
//判断元素的值是否为username中的值
out.println(Cookies[i].getValue()+"
");
}
}
%>
6.2.3 Cookie中的主要方法6.2.3 Cookie中的主要方法nullnull例如,设置Cookie变量的有效周期的语法如下:
Cookie 变量名称.setMaxAge(有效周期);
有效周期的时间以秒为单位,时间设置越大,表示Cookie对象的有效时间越长。
Cookie cookie=new Cookie(“username”,”liuyongpo”);
Cookie. setMaxAge(30*60);//设置Cookie的存活时间为30分钟
response.addCookie(cookie);6.2.4 几个操作Cookie的常用方法6.2.4 几个操作Cookie的常用方法1. 设置Cookie的存在期限
Cookie在生成时就会被指定一个Expire值,这就是Cookie的生存周期,在这个周期内Cookie有效,超出周期Cookie就会被清除。有些页面将Cookie的生存周期设置为0或负值,这样在关闭页面时,就马上清除Cookie,不会记录用户信息,更加安全。在默认情况下,Cookie是随着用户关闭浏览器而自动消失的,不过,Cookie也可以设置其存在的期限,让用户下次在打开网页时,服务器端仍然能够取得同样一个Cookie中的数据内容。
下面的代码,使用setMaxAge()方法,设置Cookie对象login在一天之内都为有效:
<%
Cookie login = new Cookie("today","true");
login.setMaxAge(86400);
response.addCookie(login);
%>
null自动保存的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);
}
}null2. 删除Cookie
Cookie killMyCookie = new Cookie("mycookie", null); killMyCookie.setMaxAge(0); killMyCookie.setPath("/"); response.addCookie(killMyCookie); null3.获取指定名字的Cookie值
public static String getCookieValue(Cookie[] cookies,
String cookieName, String defaultValue) {
for(int i=0; i<cookies.length; i++) {
Cookie cookie = cookies[i];
if (cookieName.equals(cookie.getName()))
return(cookie.getValue());
}
return(defaultValue);
}
6.3 Cookie对象的应用实例6.3 Cookie对象的应用实例【例6-1】在JSP中使用Cookie
【例6-2】应用Cookie保留用户提交的信息
6.4 Cookie的安全问题6.4 Cookie的安全问题Cookie欺骗
Flash的代码隐患
隐私,安全和广告
偷窃Cookie和脚本攻击