一、设置Cookie
public static void SetCookie(HttpServletRequest request, HttpServletResponse response, String strName, String strValue, String uri, int hour) { // 方式一 // response.setHeader("Set-Cookie", "userName=张三"); // 方式二 Cookie c = new Cookie(strName, strValue); if (hour > 0) { // 没有设置过MaxAge则这个Cookie是一个会话级别的Cookie,这个Cookie信息打给浏览器后浏览器会将它保存在浏览器的内存中,这意味着只要浏览器已关闭随着浏览器内存的销毁Cookie信息也就消失了. // 设置MaxAge,则会将这个Cookie信息以文件的形式保存在浏览器的临时文件夹中,保存到指定的时间到来位置.由于这些浏览器都能在临时文件夹中看到cookie文件,所以在cookie失效之前cookie信息都存在. c.setMaxAge(3600 * hour); } // 用来通知浏览器在访问服务器中的哪个路径及其子路径时带着当前cookie信息过来 // 如果不明确设置,则默认的路径是发送Cookie的Servlet所在的路径 if (uri != null && uri != "") { c.setPath(uri); } else { c.setPath(request.getContextPath()); } // 用来通知浏览器在访问哪个域名的时候带着当前的cookie信息. // 但是要注意,现代的浏览器一旦发现cookie设置过domain信息则会拒绝接受这个Cookie.我们平常不要设置这个方法 // c.setDomain(".baidu.com"); response.addCookie(c); }
二、查找指定cookie
public static String GetCookie(HttpServletRequest request, String strName) { Cookie[] cs = request.getCookies(); Cookie findC = null; if (cs != null) { for (Cookie c : cs) { if (strName.equals(c.getName())) { findC = c; } } } if (findC != null) { return findC.getValue(); } return null; }
三、删除cookie
// 删除一个Cookie,发送一个同名同path的cookie,maxage设置为0 // 注意,删除cookie时,path必须一致,否则不会删除(浏览器通过cookie的name+path来标识一个cookie) Cookie c = new Cookie(strName, null); c.setMaxAge(0); c.setPath(request.getContextPath()); response.addCookie(c);
版权声明:本文为博主原创文章,未经博主允许不得转载。