cookie的机制是:从客户端(浏览器)发送请求到服务器,然后服务器把接受的信息回写到客户端,这个信息在客户端跟服务器之间进行交互。
下面是一个创建cookie的小案例
//如何创建cookiepackagecom.oliver.learn;importjavax.servlet.http.*;importjava.io.*;publicclassTestCookie1extendsHttpServlet{//处理Get请求publicvoiddoGet(HttpServletRequest req,HttpServletResponse res){//异常处理//处理中文乱码res.setContentType("text/html;charset=gbk");try{PRintWriter pw=res.getWriter();//当用户访问该servlet时将信息创建到cookie中//1.现在服务器端创建一个cookieCookie mycookie =newCookie("color","red");//2.该cookie存在的时间mycookie.setMaxAge(30);//3.将cookie写回到客户端res.addCookie(mycookie);
pw.println("cookie已经创建!请到c盘相应路径下查看");
pw.println("");
}catch(IOException e) {
e.printStackTrace();
}
}
}
cookie存储在C盘的路径为:C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Cookies,Administrator根据自己的实际情况修改。
效果如下:
如何读取cookie呢?
//如何读取cookiepackagecom.oliver.learn;importjavax.servlet.http.*;importjava.io.*;publicclassGetCookie1extendsHttpServlet{//处理Get请求publicvoiddoGet(HttpServletRequest req,HttpServletResponse res){try{
res.setContentType("text/html;charset=gbk");
PrintWriter pw=res.getWriter();//从客户端获取cookie信息Cookie [] allcookie=req.getCookies();inti=0;//如果cookie不为空。。。if(allcookie!=null){//从中取出cookiefor(i=0;i<allcookie.length;i++){//依次取出Cookie temp=allcookie[i];//判断一下if(temp.getName().equals("color")){
String val=temp.getValue();
pw.println(val);
break;
}
}if(allcookie.length==i){
pw.println("cookie过期");
}
}else{
pw.println("cookie已经过期或者不存在color这个cookie!");
}
}catch(IOException e) {
e.printStackTrace();
}
}
}
得到cookie
如何去删除cookie?
//如何删除cookiepackagecom.oliver.learn;importjavax.servlet.http.*;importjava.io.*;publicclassDeleteCookie1extendsHttpServlet{//处理Get请求publicvoiddoGet(HttpServletRequest req,HttpServletResponse res){try{
res.setContentType("text/html;charset=gbk");
PrintWriter pw=res.getWriter();//从客户端获取cookie信息Cookie [] allcookie=req.getCookies();inti=0;//如果cookie不为空。。。if(allcookie!=null){//从中取出cookiefor(i=0;i<allcookie.length;i++){//依次取出Cookie temp=allcookie[i];//判断一下if(temp.getName().equals("color")){
temp.setMaxAge(0);
pw.println("cookie已经删除");
break;
}
}if(allcookie.length==i){
pw.println("cookie过期");
}
}else{
pw.println("cookie已经过期或者不存在color这个cookie!");
}
}catch(IOException e) {
e.printStackTrace();
}
}
}
表明cookie已经删除,此时去C盘中不存在cookie文件的。