zjw1988 发表于 2013-2-7 15:59:02

Cookies 详解

Cookie:用来保存客户端信息。
Cookie是一小块可以嵌入HTTP请求和响应的数据。它在服务器上产生,并作为响应头域的一部分返回给客户。浏览器在收到有Cookie的响应后,会把Cookie的内容以"关键字/值"的形式写入到一个专为存放Cookie的文本文件中。浏览器会把Cookie的信息与请求发送给服务器,这样服务器就可以再次读取Cookie中存放的数据了。Cookie可以对有效期进行设置,浏览器不会把过期的Cookie发送给服务器。
一、创建Cookie
包路径:javax.servlet.http.Cookie
构造函数:public Cookie(String name,String value)
package cookie;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.Cookie;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class CookieTest1 extends HttpServlet{private static final long serialVersionUID = 1L;public void doGet(HttpServletRequest req, HttpServletResponse res)throws IOException, ServletException{//设置响应客户端编码res.setContentType("text/html; charset=utf-8");PrintWriter pw = res.getWriter();//创建CookieCookie cookie = new Cookie("admin", "zjw");//设置cookie存在时间(不设置的话不会被保存)cookie.setMaxAge(300);//回写到客户端res.addCookie(cookie);pw.println("Cookies 已经被创建!");}public void doPost(HttpServletRequest req, HttpServletResponse res)throws IOException, ServletException{doGet(req, res);}} 二、获取Cookie
 
package cookie;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.Cookie;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class CookieTest2 extends HttpServlet {public void doGet(HttpServletRequest req, HttpServletResponse res)throws IOException, ServletException {//设置响应客户端编码res.setContentType("text/html; charset=utf-8");PrintWriter pw = res.getWriter();// 获取CookiesCookie [] cookies= req.getCookies();int i = 0;if(cookies != null && cookies.length !=0 ){for(i = 0; i < cookies.length; i++){if("admin".equals(cookies.getName())){pw.println(cookies.getName() + " = " +cookies.getValue());break;}}if(i == cookies.length){pw.println("指定cookie不存在或已过期");}}else{pw.println("指定cookie不存在或已过期");}}public void doPost(HttpServletRequest req, HttpServletResponse res)throws IOException, ServletException {doGet(req, res);}} 三、删除Cookie
package cookie;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.Cookie;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class CookieTest3 extends HttpServlet {private static final long serialVersionUID = 1L;public void doGet(HttpServletRequest req, HttpServletResponse res)throws IOException, ServletException {// 设置响应客户端编码res.setContentType("text/html; charset=utf-8");PrintWriter pw = res.getWriter();// 获取CookiesCookie[] cookies = req.getCookies();int i = 0;if (cookies != null && cookies.length != 0) {for (i = 0; i < cookies.length; i++) {Cookie tmp = cookies;if ("admin".equals(tmp.getName())) {tmp.setMaxAge(0);res.addCookie(tmp);//必须加上这句才能删除pw.println("cookie 已经被删除");break;}}}//for (i = 0; i < cookies.length; i++) {//if ("admin".equals(cookies.getName())) {//pw//.println(cookies.getName() + " = "//+ cookies.getValue());//break;//}//}}public void doPost(HttpServletRequest req, HttpServletResponse res)throws IOException, ServletException {doGet(req, res);}}
页: [1]
查看完整版本: Cookies 详解