java cookie

如果设置为负值的话,则为浏览器进程Cookie(内存中保存),关闭浏览器就失效。

如果设置为 0 的话,则该cookie会被删除。  

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

        Cookie cookie = getCookieByName(request, name);

        if(cookie != null) {

            cookie.setMaxAge(0);

            cookie.setPath("/");

            response.addCookie(cookie);

        }

    }

    

    /**

     * set cookie

     * @param response

     * @param name

     * @param value

     * @param maxAge

     */

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

        Cookie cookie = new Cookie(name,value);

        cookie.setPath("/");

        if(maxAge>0)  cookie.setMaxAge(maxAge);

        response.addCookie(cookie);

    }

    

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

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

        if(cookieMap.containsKey(name)){

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

            return cookie;

        }else{

            return null;

        }   

    }

     

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

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

        Cookie[] cookies = request.getCookies();

        if(null!=cookies){

            for(Cookie cookie : cookies){

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

            }

        }

        return cookieMap;

    }

猜你喜欢

转载自slnddd.iteye.com/blog/2339470