让cookie失效要注意的问题
程序员文章站
2022-03-14 22:24:17
...
让cookie失效要注意的问题
下面的代码无法让cookie 失效,
因为保存的cookie 设置了path,
失效时没有设置path, 所以无法cookie 失效,
注意:想让cookie 失效,除了设置有效期为0,其他参数(path,domain)必须完全一样,
正确的:
/*** * 是否保存cookie * @param response * @param emaiCookieName * @param cookieValue * @param isSave : 是否保存用户名(记住用户名) * @return */ public static Cookie rememberMe(Cookie[] cookies , /*HttpServletRequest request,*/HttpServletResponse response,String emaiCookieName, String cookieValue, boolean isSave) { // HttpServletRequest request = ServletActionContext.getRequest(); boolean flag = false; // Cookie passwordCook = null; Cookie emailCook = null; if (cookies != null) { System.out.println("cookie 不为空"); for (Cookie c : cookies) { // if (passwordCookieName.equals(c.getName())) // { // c.setValue(URLEncoder.encode(password, "utf-8")); // passwordCook = c; // flag = true; // continue; // } // if(c.getName().equals(Constant2.COOKIE_KEY_ISAUTO_LOGIN )){ // System.out.println(Constant2.COOKIE_KEY_ISAUTO_LOGIN+":"+cookieValue); // } if (emaiCookieName.equals(c.getName()) ) { System.out.println("找到了 " + emaiCookieName); System.out.println("cookie的值为 " + c.getValue()); if((! ValueWidget.isNullOrEmpty(cookieValue))){ try { c.setValue(URLEncoder.encode(cookieValue, "utf-8")); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } emailCook = c; flag = true; break; } } } // HttpServletResponse response = ServletActionContext.getResponse(); if (isSave) { if (!flag) { System.out.println("没有找到 " + emaiCookieName); // passwordCook = new Cookie(passwordCookieName, URLEncoder // .encode(password, "utf-8")); try { emailCook = new Cookie(emaiCookieName, URLEncoder.encode( cookieValue, "utf-8")); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } emailCook.setMaxAge(10000000);//单位是秒,所以大概115 天 emailCook.setPath("/");//设置cookie时,设置path为根路径 response.addCookie(emailCook); flag=true; System.out.println("保存cookie:"+emailCook.getValue()); } else { if (flag) { System.out.println("让 cookie 失效"); emailCook.setMaxAge(0); emailCook.setPath("/");//设置cookie时,设置path为根路径 ,如果不设置path ,则无法让cookie 失效 response.addCookie(emailCook); } } return emailCook; }
参考:
http://hw1287789687.iteye.com/blog/2050040
上一篇: mac sed 正则表达式匹配空格
推荐阅读
-
ASP.NET 程序中删除文件夹导致session失效问题的解决办法分享
-
iframe跨域与session失效问题的解决办法
-
spring MVC要注意的地方 博客分类: Java Web springmvcmvcModel注意的问题返回值
-
spring MVC要注意的地方 博客分类: Java Web springmvcmvcModel注意的问题返回值
-
mysql的in会不会让索引失效?
-
Forms身份认证在IE11下无法保存Cookie的问题
-
关于shiro中部分SpringCache失效问题的解决方法
-
sessionid在cookie中无法过期的有关问题
-
Oracle RMAN中备份表空间名为'TEST'时需要注意的问题
-
总结适配IOS10开发需要注意的问题