1、 什么是Cooki
通俗点讲:Cookies是一种能够让网站服务器把少量数据储存到客户端的硬盘或内存,或是从客户端的硬盘读取数据的一种技术。Cookies是当你浏览某网站时,由Web服务器置于你硬盘上的一个非常小的文本文件,它可以记录你的用户ID、密码、浏览过的网页、停留的时间等信息。
当你再次来到该网站时,网站通过读取Cookies,得知你的相关信息,就可以做出相应的动作,如在页面显示欢迎你的标语,或者让你不用输入ID、密码就直接登录等等
Cookies文件是在无声无息中伴随浏览器进入我们本地硬盘的,当我们浏览某个站点时,该站点很可能将记录我们隐私的cookies文件上传到本地硬盘。那么我们如何防范阻止cookies文件泄露我们的隐私呢?实际上我们可以通过浏览器设置不容许计算机接收cookies文件即可。方法如下:
第一步:进入系统打开IE浏览器。
第二步:通过菜单栏中的“工具->internet选项”打开internet设置窗口。
第三步:找到“隐私”标签,将设置的滑动按钮调节到最高,这样将阻止来自所有网站的cookie,而且计算机上的现有cookie文件都将不能被网站读取
第四步:确定后我们完成设置,任何站点都不会将cookie文件强制塞入我们的计算机。这样我们的隐私也不会再泄露了。为防止我们的隐私泄露,你也可以删除cookies.
2、 如何删除Cookies?下面将删除Cookies的办法告知大家:
(1).先打开IE或TT的浏览器。
(2).点击页面最上方一行中的“工具”。
(3).在拉出的菜单里用鼠标点击“internet”选项。
(4).在弹出的对话框里用鼠标点击“删除Cookies”选项。
(5).在又一个弹出的小对话框里用鼠标点击“确定”后,这个对话框就消失了。
(6).再继续点击留下的原来的对话框下方的“确定”。
这样,就算删除完Cookies了。
3、 Cookie的传送过程:
4、在Servlet程序中使用Cookie
代码及其分析:
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
public class TestCookie extends HttpServlet{
public voiddoGet(HttpServletRequest request, HttpServletResponse response)
throwsServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriterout = response.getWriter();
/*首先从请求的消息中将用户账号、昵称获取到*/
Stringname=request.getParameter("name,");
StringnickName=request.getParameter("nickName");
/*在这两个不为空的时候进行登录*/
if(name==null||nickName==null){
out.println("请输入姓名和昵称");
return;
}
/*创建Cookie对象,用来保存会话状态信息的*/
Cookiecookie1=new Cookie("name",name);
/*Cookie的有效期*/
cookie1.setMaxAge(24*60*60);
Cookiecookie2=new Cookie("nickName",nickName);
/*将生成的cookie对象添加到响应消息头字段中*/
response.addCookie(cookie1);
response.addCookie(cookie2);
out.println("欢迎访问本servlet");
out.flush();
out.close();
}
5、帮助文档:Cookie类的使用
在Http子包下:
6、设置Cookie
Internet选项 隐私 高级
7、 在Servlet程序中使用Cookie:
ServletAPI中提供了一个javax.servlet.http.Cookie类来封装Cookie信息,它包含有生成Cookie信息和提取Cookie信息的各个属性的方法。
Cookie类的方法:
a) 构造方法: public Cookie(java.lang.String name,java.lang.String value)
b) getName方法
c) setValue与getValue方法
d) setMaxAge与getMaxAge方法
e) setPath与getPath方法
f) setDomain与getDomain方法
g) setVersion与getVersion方法
h) setComment与getComment方法
i) setSecure与getSecure方法
HttpServletResponse接口中定义了一个addCookie方法,它用于在发送给浏览器的HTTP响应消息中增加一个Set-Cookie响应头字段。
HttpServletRequest接口中定义了一个getCookies方法,它用于从HTTP请求消息的Cookie请求头字段中读取所有的Cookie项。
package com.csdn.login;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
public class LoginTime extends HttpServlet {
int value=0;
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException,IOException {
//TODO Method stub generated by Lomboz
Cookie cookie = null;
//获取请求相关的cookie
Cookie[] cookies = request.getCookies();
//判断CookieVisitTimes是否存在
//如果存在,其值加1
if (cookies != null){
for (int i = 0; i < cookies.length; i++){
String time=cookies[i].getName();
if (cookies[i].getName().equals(time)){
String v=cookies[i].getValue();
value=Integer.parseInt(v)+1;
cookies[i].setValue(Integer.toString(value));
cookie=cookies[i];
}
}
}
//不存在,创建cookie
if (cookie == null){
int maxAge=10000;
//Create the Cookie object
cookie = new Cookie("VisitTimes","1");
cookie.setPath(request.getContextPath( ));
cookie.setMaxAge(maxAge);
response.addCookie(cookie);
}//end if
// 显示信息
response.setContentType("text/html;charset=gb2312");
java.io.PrintWriter out =response.getWriter( );
out.println("<html>");
out.println("<head>");
out.println("<title>Cookie </title>");
out.println("</head>");
out.println("<body>");
out.println(
"<h2> 您好!</h2>");
out.println("欢迎您第 "+cookie.getValue()+"次访问本页面<br>");
out.println("</body>");
out.println("</html>");
}
protected voiddoPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
//TODO Method stub generated by Lomboz
doGet(request,response);
}
}