您的位置:首页 > 编程语言 > Java开发

Cookie工具类

2015-11-21 17:06 363 查看
/**

 * Cookie工具类

 * 

 */

public class cookieUtil {

    private cookieUtil() {

    }

    /**

     * 设置cookie

     * 

     * @param response

     * @param name

     *            cookie名字

     * @param value

     *            cookie值

     * @param maxAge

     *            cookie生命周期 以秒为单位

     * @throws UnsupportedEncodingException

     */

    public static void addCookie(HttpServletResponse response, String name, String value, int maxAge) throws UnsupportedEncodingException {

        // cookie值转编码

        String value2 = java.net.URLEncoder.encode(value, ConstantUtil.UTF);

        // 创建新的对象

        Cookie cookie = new Cookie(name, value2);

        cookie.setPath("/");

        if (maxAge > 0) {

            cookie.setMaxAge(maxAge);// 设置时间最大值

        }

        // 添加

        response.addCookie(cookie);

    }

    /**

     * 根据名字获取cookie

     * 

     * @param request

     * @param name

     *            cookie名字

     * @return

     */

    public static Cookie getCookieByName(HttpServletRequest request, String name) {

        // 将cookie封装到Map里面

        Map<String, Cookie> cookieMap = ReadCookieMap(request);

        // 查找名字匹配的cookie

        if (cookieMap.containsKey(name)) {

            // 获取该cookie

            return (Cookie) cookieMap.get(name);

        } else {

            return null;

        }

    }

    /***

     * 根据名称删除cookie

     * 

     * @param request

     * @param response

     * @param name

     *            cookie名字

     */

    public static void delCookieByName(HttpServletRequest request, HttpServletResponse response, String name) {

        // 将cookie封装到Map里面

        Map<String, Cookie> cookieMap = ReadCookieMap(request);

        // 查找名字匹配的cookie

        if (cookieMap.containsKey(name)) {

            // 获取该cookie

            Cookie cookie = (Cookie) cookieMap.get(name);

            // 设置有效时间为0,即设置失效

            cookie.setMaxAge(0);

            response.addCookie(cookie);

        }

    }

    /**

     * 将cookie封装到Map里面

     * 

     * @param request

     * @return

     */

    private static Map<String, Cookie> ReadCookieMap(HttpServletRequest request) {

        // 将cookie封装到Map里面

        Map<String, Cookie> cookieMap = new HashMap<String, Cookie>();

        // 获取服务器端的cookie

        Cookie[] cookies = request.getCookies();

        // 如果不为空

        if (null != cookies) {

            // 循环添加进map中

            for (Cookie cookie : cookies) {

                cookieMap.put(cookie.getName(), cookie);

            }

        }

        // 返回

        return cookieMap;

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  cookie java