zoukankan      html  css  js  c++  java
  • cookieUtil

    public class CookieUtil {
        
        
        /**
         * 设置cookie
         * @param name  cookie名字
         * @param value cookie值
         * @param maxAge cookie生命周期  以秒为单位
         */
        public static void addCookie(HttpServletResponse res,String name,String value,String domain,int maxAge){
            
            
            try {
                value = URLEncoder.encode(""+value, "utf-8");
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
            
            Cookie cookie = new Cookie(name, value + "" );
            cookie.setPath("/");
            cookie.setDomain(domain);
            if(maxAge>0)  cookie.setMaxAge(maxAge);
            res.addCookie(cookie);
        }
        
        /**
         * 根据名字获取cookie
         * @param name cookie名字
         * @return
         */
        public static Cookie getCookieByName(HttpServletRequest req,String name){
            Map<String,Cookie> cookieMap = getCookieMap(req);
            if(cookieMap.containsKey(name)){
                Cookie cookie = (Cookie)cookieMap.get(name);
                return cookie;
            }else{
                return null;
            }   
        }
        
        /**
         * 将cookie封装到Map里面
         * @return
         */
        private static Map<String,Cookie> getCookieMap(HttpServletRequest req){  
            Map<String,Cookie> cookieMap = new HashMap<String,Cookie>();
            Cookie[] cookies = req.getCookies();
            if(null!=cookies){
                for(Cookie cookie : cookies){
                    cookieMap.put(cookie.getName(), cookie);
                }
            }
            return cookieMap;
        }
    
        
        public static boolean deleteCookie(HttpServletRequest req,HttpServletResponse res,String cookieName) {   
            if (cookieName != null) {
                Cookie cookie = getCookie(req,cookieName);   
                if(cookie!=null){
                    cookie.setMaxAge(0);//0,就立即删除   
                    cookie.setPath("/");//不要漏掉   
                    cookie.setDomain(req.getServerName());
                    res.addCookie(cookie);   
                    return true;   
                }
            }   
            return false;   
        }
    
        public static String getValue(HttpServletRequest req,String cookieName){
            Cookie cookie = getCookie(req,cookieName);
            return getValue(cookie);
        }
        
        public static String getValue(Cookie cookie){
            if(null == cookie) return null;
            try {
                return URLDecoder.decode(cookie.getValue(), "utf-8");
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
            return null;
        }
        
        public static Cookie getCookie(HttpServletRequest req,String cookieName){   
            Cookie[] cookies = req.getCookies();   
            Cookie cookie = null;   
            try {
                if (cookies != null && cookies.length > 0) {   
                    for (int i = 0; i < cookies.length; i++) {
                        cookie = cookies[i];   
                        if (cookie.getName().equals(cookieName)) {   
                            return cookie;   
                        }   
                    }   
                }   
            } catch (Exception e) {  
                e.printStackTrace();   
            }
            return null;   
        }   
                                        
    }

    关于cookie util

  • 相关阅读:
    关于使用wcf架构分布式系统的一点想法
    vs2012 远程调试服务器上iis下的程序
    F#定义方法参数
    产生不重复的随机数
    巧在C#中设置多维动态数组,可以动态增加及删除
    C#时间相减
    css控制图片大小的方法
    常用网络命令
    DEDE SQL 常用语句
    未审核文档发布时间的自动更改方法for DEDEcms v5.3(修正版)
  • 原文地址:https://www.cnblogs.com/zhouweidong/p/6857139.html
Copyright © 2011-2022 走看看