博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于CookieUtile的相关代码
阅读量:6425 次
发布时间:2019-06-23

本文共 4131 字,大约阅读时间需要 13 分钟。

hot3.png

关于CookieUtile的相关代码

public class CookieUtil{
/** * 根据name获得cookie * * @param request * @param name * @return */ public static Cookie getCookie(HttpServletRequest request,String name){ Cookie cookies[] = request.getCookies(); if (cookies == null || name == null || name.length() == 0){ return null; } for (int i = 0; i < cookies.length; i++){ if (name.equals(cookies[i].getName()) /* && request.getServerName().equals(cookies[i].getDomain()) */){ return cookies[i]; } } return null; } /** * 根据cookie对象移除cookie * * @param request * @param response * @param cookie */ public static void deleteCookie(HttpServletRequest request,HttpServletResponse response,Cookie cookie){ if (cookie != null){ cookie.setPath(getPath(request)); cookie.setValue(""); cookie.setMaxAge(0); response.addCookie(cookie); } } /** * 根据cookie的name删除 * * @param request * @param response * @param cookieName */ public static void deleteCookie(HttpServletRequest request,HttpServletResponse response,String cookieName){ Cookie cookie = new Cookie(cookieName, ""); deleteCookie(request, response, cookie); } /** * 通过name和value产生一个生命周期为2592000秒的cookie * * @param request * @param response * @param name * 键 * @param value * 值 */ public static void setCookie(HttpServletRequest request,HttpServletResponse response,String name,String value){ setCookie(request, response, name, value, 0x278d00); } /** * 通过name和value产生一个生命周期为maxAge秒的cookie * * @param request * @param response * @param name * 键 * @param value * 值 * @param maxAge * 生命周期 */ public static void setCookie(HttpServletRequest request,HttpServletResponse response,String name,String value,int maxAge){ Cookie cookie = new Cookie(name, value == null ? "" : value); cookie.setMaxAge(maxAge); cookie.setPath(getPath(request)); response.addCookie(cookie); } private static StringBuffer generateCookieStringInTomcat(final Cookie cookie,final boolean httpOnly){ final StringBuffer sb = new StringBuffer(); // web application code can receive a IllegalArgumentException // from the appendCookieValue invokation if (SecurityUtil.isPackageProtectionEnabled()){ AccessController.doPrivileged(new PrivilegedAction(){ public Object run(){ ServerCookie.appendCookieValue( sb, cookie.getVersion(), cookie.getName(), cookie.getValue(), cookie.getPath(), cookie.getDomain(), cookie.getComment(), cookie.getMaxAge(), cookie.getSecure(), httpOnly); return null; } }); }else{ ServerCookie.appendCookieValue( sb, cookie.getVersion(), cookie.getName(), cookie.getValue(), cookie.getPath(), cookie.getDomain(), cookie.getComment(), cookie.getMaxAge(), cookie.getSecure(), httpOnly); } return sb; } /** * setCookie的增强版 * * @param request * @param response * @param name * 键 * @param value * 值 * @param maxAge * 生命周期 */ public static void setCookieHttp(HttpServletRequest request,HttpServletResponse response,String name,String value,int maxAge){ StringBuffer cookie = generateCookieStringInTomcat(new TimeIntervalCookie(name, value, maxAge), true); response.addHeader("Set-Cookie", cookie.toString()); } private static String getPath(HttpServletRequest request){ String path = request.getContextPath(); return (path == null || path.length() == 0) ? "/" : path; }}

转载于:https://my.oschina.net/sunchenbin/blog/633000

你可能感兴趣的文章
pkill -9 nginx
查看>>
关于ASP.NET MVC4 Web API简单总结
查看>>
BGP最新的AS号:4-byte-as 转换为十进制及AS号兼容性
查看>>
Windows2008server R2 组策略批量更改本地管理员密码
查看>>
ubutnu安装geany
查看>>
webservice 之 Java CXF实战效果 RS WS(一)
查看>>
我的友情链接
查看>>
Repository 与 DAO
查看>>
Zabbix监控Windows主机
查看>>
IBM x3850 RAID5数据恢复方案及过程
查看>>
移动计算领域五大机遇:交通运输优势待挖掘
查看>>
如何把win7 旗舰版升级到sp1最新版本
查看>>
android 调用系统界面
查看>>
Software Enginering-------using git
查看>>
浅谈IP地址-1
查看>>
我的友情链接
查看>>
C#中的线程池使用(一)
查看>>
利用Windows Server Backup功能备份活动目录
查看>>
RAC维护手记08-ASM磁盘组信息查看常用命令
查看>>
实验08 磁盘和文件系统管理
查看>>