1.什么是Cookie: Cookie是Web服务器保存在用户硬盘上的一段文本。Cookie允许一个Web站点在用户的电脑上保存信息并且随后再取回它。 举例来说,一个Web站点可能会为每一个访问者产生一个唯一的ID,然后以Cookie文件的形式保存在每个用户的机器上。 如果您使用IE浏览器访问Web,您会看到所有保存在您的硬盘上的Cookie。飞飞Asp技术乐@园它们最常存放的地方是:c:\windows\cookies(在Win 2000中则是C:\Documents and Settings\您的用户名\Cookies ) cookie是以“关键字key=值value“的格式来保存纪录的. 2.创建一个Cookie对象,调用Cookie对象的构造函数可以创建Cookie。Cookie对象的构造函数有两个字符串参数:Cookie名字和Cookie值。 Cookie c=new Cookie(“username”,”john”); 3. jsp中如果要将封装好的Cookie对象传送到客户端,使用response的addCookie()方法。飞飞A,sp技术乐园 格式:response.addCookie(c) 4.读取保存到客户端的Cookie,使用request对象的getCookies()方法,执行时将所有客户端传来的Cookie对象以数组的形式排列,如果要取出符合需要的Cookie对象,就需要循环比较数组内每个对象的关键字。 例:
Cookie[] c=request.getCookies(); if(c!=null) for(int I=0;I<c.length;I++) if(“username”.equals(c[I].getName())) out.println(c[I].getValue());
5.设置Cookie对象有效时间:setMaxAge()。 c.setMaxAge(3600); 6.Cookie应用 1.网站能够精确地知道有多少人浏览过。 由于代理服务器、缓存等的使用,唯一能帮助网站精确统计来访人数的方法就是为每个访问者建立一个唯一的ID。使用Cookie,网站可以完成以下工作: ●测定多少人访问过; ●测定访问者有多少是新用户(即第一次来访),多少是老用户; ●测定一个用户多久访问一次网站。 网站使用数据库达到上述目标。当一个用户第一次访问时,网站在数据库中建立一个新的ID,并把ID通过Cookie传送给用户。用户再次来访时,网站把该用户ID对应的计数器加1,得到用户的来访次数。 例:Cookie.jsp
<%@ page c import="java.util.Date" %> <HTML> <HEAD> <TITLE>Cookie的存取</TITLE> </HEAD> <BODY> <CENTER> <FONT SIZE = 5 COLOR = blue>Cookie的存取</FONT> </CENTER> <HR> <P></P> <% //建立Cookie变数 Cookie IntVal = new Cookie("IntVal", "100"); Cookie temp = null; response.addCookie(IntVal); //将Cookie变数加入Cookie中 Cookie[] cookies = request.getCookies(); //取得Cookie资料 int cookielen = cookies.length; //取得Cookie变数阵列的长度 if(cookielen != 0) //判断是否成功取得Cookie资料 { for (int i = 0; i < cookielen; i++) { temp = cookies[i]; //取得cookies阵列中的Cookie变数 if (temp.getName().equals("IntVal")) { //判断是否取得名为DateVal的Cookie资料 %> Cookie中<Font color = blue>IntVal</Font>变量的值为 <Font color = red><%= IntVal.getValue()%></Font><BR> <% } } } else { %> 不存在Cookie<BR> <% } %> </BODY> </HTML> 例:CookieDate.jsp <%@ page c import="java.util.Date"%> <HTML> <HEAD> <TITLE>自Cookie存取日期/时间数据</TITLE> </HEAD> <BODY> <CENTER> <FONT SIZE = 5 COLOR = blue>自Cookie存取日期/时间数据</FONT> </CENTER> <HR> <P></P> <% Date Now = new Date(); //取得目前的系统时间 Cookie DateVal = new Cookie("DateVal", String.valueOf(Now.getTime())); //欲将储存至Cookie时间/日期值转换为毫秒数 response.addCookie(DateVal); //将Cookie变数加入Cookie中 Cookie temp = null; DateVal = null; //重设Cookie变数 Cookie[] cookies = request.getCookies(); //取得Cookie资料 int cookielen = cookies.length; //取得Cookie变数阵列的长度 if(cookielen != 0) //判断是否成功取得Cookie资料 { for (int i = 0; i < cookielen; i++) { temp = cookies[i]; //取得cookies阵列中的Cookie变数 if (temp.getName().equals("DateVal")) { //判断是否取得名为DateVal的Cookie资料 %> Cookie中<Font color = blue>DateVal</Font> 变量的值为<Font color = red> <%= new Date(Long.parseLong(temp.getValue())) %> </Font><BR> <% } } } else //若无法取得Cookie资料则执行下面的叙述 { %> 无法取得Cookie<BR> <% } %> </BODY> </HTML>
|