Servlet Cookie操作(添加,修改,读取,删除)
Cookie是存储在客户端计算机上的文本文件,并保留了各种跟踪信息。Cookie通过客户端http协议传输放到request里面,那么可以从Servlet request拿到当初存放在里面的cookies。
添加Cookie
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); String id = UUID.randomUUID().toString(); //生成一个随机字符串 Cookie cookie = new Cookie("id", id); //创建Cookie对象,指定名字和值 response.addCookie(cookie); //在响应中添加Cookie对象 response.getWriter().print("已经给你发送了ID"); }
修改Cookie
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { // 所有的 cookie Cookie[] cookies = request.getCookies(); // 遍历所有的 Cookie 寻找 用户帐号信息与登录次数信息 for (int i = 0; cookies != null && i < cookies.length; i++) { Cookie cookie = cookies[i]; if ("visitTimes".equals(cookie.getName())) { visitTimes = Integer.parseInt(cookie.getValue()); cookie.setValue("" + ++visitTimes); } } // 修改 Cookie,更新用户的访问次数 Cookie visitTimesCookie = new Cookie("visitTimes", Integer.toString(visitTimes)); response.addCookie(visitTimesCookie); }
读取Cookie
//读取所有cookies package com.oliver.learn; import javax.servlet.http. * ; import java.io. * ; public class GetCookie1 extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse res) { try { res.setContentType("text/html;charset=gbk"); PrintWriter pw = res.getWriter(); //从客户端获取cookie信息 Cookie[] allcookie = req.getCookies(); int i = 0; //如果cookie不为空。。。 if (allcookie != null) { //从中取出cookie for (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
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Cookie c = new Cookie("name", "hhh"); c.setMaxAge(0); //另有效时间为0则系统会自动删除过期的cookie response.addCookie(c); }
总结
1. Cookie操作一般用于在线交易过程中标识用户身份、安全要求不高的场合避免用户重复输入名字和密码、门户网站的主页定制、有针对性地投放广告等等。
2. 一般只允许存放300个Cookie,每个站点最多存放20个Cookie,每个Cookie的大小限制为4KB,因此在操作的时候应该避免生成过多的Cookie。
版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。