关于CookieUtile的相关代码

来源:互联网 发布:数据挖掘技术与算法 编辑:程序博客网 时间:2024/06/06 01:57

关于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;    }}
1 0
原创粉丝点击