首页 > 代码库 > java对cookie的操作

java对cookie的操作

写cookie:

        Cookie cookie = new Cookie(Constants.cookie4SessionName, session.getSessionId());
        cookie.setPath("/");//设置根路径
        cookie.setDomain(".baidu.com");//设置访问域,主域和子域可以共享cookie或者设置跨域cookie
        cookie.setMaxAge(Constants.defaultCookieSessionAge * 24 * 3600);
        response.addCookie(cookie);

注:删除cookie将maxAge设置为0,同时要指定path和domain(如果不是默认的话,默认的path为写cookie的路径及子路径,默认的domain为域名全称),修改也类似,没有明确的修改和删除,实质是覆盖和超时失效。

        cookie.setPath("/");
        cookie.setDomain(".baidu.com");
        cookie.setMaxAge(0);

读cookie:

public static String getSessionId(HttpServletRequest request){
        Cookie[] cookies = request.getCookies();
        if(null == cookies || cookies.length == 0)
            return null;
        for(Cookie cookie : cookies){
            if(Constants.cookie4SessionName.equals(cookie.getName())){
                return cookie.getValue();
            }
        }
        return null;
    }

当然,可以把cookie封装成一个cookieMap使用更方便,Map<String, Cookie> cookieMap...

有点头疼的是,获取cookie的时候如果根域和全域都设置了一个键值对,得不到domain信息;可以先把不需要的那个domain下的cookie删除即可。


java对cookie的操作