购物车模块实现之Cookie

Cookie的基本应用:

  • 正常的cookie只能在一个应用中共享,即一个cookie只能由创建它的应用获得。 可在同一应用服务器内共享方法:设置cookie.setPath("/")
  • cookie存放的时间(以秒为单位,假如存放三天,即3*24*60*60; 如果值为0,cookie将随浏览器关闭而清除;
  • cookie.setMaxAge(maxAge):设置Cookie的存放时间。

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);
    }

 

 

 

  • request.getCookies()返回的是一个存放所有Cookie的数组;
  • 把该数组Cookie存放于Map容器cookieMap以便以后读取。
protected static Map<String, Cookie> readCookieMap(HttpServletRequest request) {
        Map<String, Cookie> cookieMap = new HashMap<String, Cookie>();
        Cookie[] cookies = request.getCookies();
        if (null != cookies) {
            for (int i = 0; i < cookies.length; i++) {
                cookieMap.put(cookies[i].getName(), cookies[i]);
            }
        }
        return cookieMap;
    }

 

 public static String getCookieByName(HttpServletRequest request, String name) {
    	Map<String, Cookie> cookieMap = WebUtil.readCookieMap(request);
        if(cookieMap.containsKey(name)){
            Cookie cookie = (Cookie)cookieMap.get(name);
            return cookie.getValue();
        }else{
            return null;
        }
    }

     注:以上方法均为静态方法,通过类名WebUtil可直接调,例如WebUtil.readCookieMap(request)。

你可能感兴趣的:(应用服务器,浏览器)