zoukankan      html  css  js  c++  java
  • java与javascript对cookie操作的工具类

    Java对cookie的操作

    package cn.utils;

    import java.util.HashMap;

    import java.util.Map;

    import javax.servlet.http.Cookie;

    import javax.servlet.http.HttpServletRequest;

    import javax.servlet.http.HttpServletResponse;

    /**

     * 操作cookie的工具类(默认cookie的有效路径为"/")

     * @author zwq

     * @version 1.0

     */

    public class CookieUtil {

             /**

              * 设置cookie

              * @param response @see javax.servlet.http.HttpServletResponse

              * @param name cookie名

              * @param value cookie值

              * @param maxAge cookie的最大活跃时间(单位s)

              */

             public static void setCookie(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);

             }

            

             /**

              * 根据cookie名获取cookie

              * @param request @see javax.servlet.http.HttpServletRequest

              * @param name cookie名

              * @return

              */

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

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

                 if(cookieMap.containsKey(name)){

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

                     return cookie;

                 }else{

                     return null;

                 }  

             }

             /**

              * 获取cookie的map集合(key=cookieName,value=cookie)

              * @param request @see javax.servlet.http.HttpServletRequest

              * @return

              */

             private static Map<String,Cookie> getCookieMap(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;

             }

             /**

              * 根据指定cookie名检测cookie是否存在

              * @param request @see javax.servlet.http.HttpServletRequest

              * @param name cookie名

              * @return

              */

             public static boolean checkCookieByName(HttpServletRequest request,String name) {

                       if (name != null && name.trim() != "") {

                                Cookie cookie = getCookieByName(request, name);

                                if (cookie != null) {

                                         return true;

                                }

                       }

                       return false;

             }

            

             /**

              * 根据指定cookie名删除cookie

              * @param request @see javax.servlet.http.HttpServletRequest

              * @param response @see javax.servlet.http.HttpServletResponse

              * @param name cookie名

              */

             public static boolean removeCookie(HttpServletRequest request ,HttpServletResponse response,String name) {

                       if (name != null && name.trim() != "") {

                                Cookie[] cookies = request.getCookies(); 

                                if (cookies != null && cookies.length > 0) { 

                                    for (Cookie cookie : cookies) { 

                                        String cookieName = cookie.getName(); 

                                        // 找到需要删除的Cookie 

                                        if (name.equals(cookieName)) { 

                                            // 设置生存期为0 

                                            cookie.setMaxAge(0); 

                                            // 设回Response中生效 

                                            response.addCookie(cookie);

                                            return true;

                                        } 

                                    } 

                                }

                       }

                       return false;

             }

    }

    Javascript对cookie的操作

    /**

     * @description 操作cookie的工具类

     * @author zwq

     * @version 1.0

     */

    /**

     * @description 设置cookie

     * @param {string} cookieName cookie名

     * @param {string} cookieValue cookie值

     * @param {Date} [cookieExpires] cookie过期时间(可选参数,默认当前会话)

     * @param {string} [cookiePath] cookie有效路径(可选参数,默认"/")

     */

    function setCookie(cookieName, cookieValue, cookieExpires, cookiePath) {

        if (typeof cookieName === "string" && typeof cookieValue == "string" && cookieName.trim() !== "") {

            var cookieStr = cookieName + "=" + cookieValue;

            if (typeof cookieExpires === "object") {

                cookieStr += ";expires=" + cookieExpires.toUTCString();

            }

            if (typeof cookiePath === "string" && cookiePath.trim() !== "") {

                cookieStr += ";path=" + cookiePath;

            }

            document.cookie = cookieStr;

        }

    }

    /**

     * @description 根据cookie名获取cookie值

     * @param {string} cookieName cookie名

     * @returns {string}

     */

    function getCookie(cookieName) {

        if (typeof cookieName === "string" && cookieName.trim() !== "") {

            if (document.cookie.length > 0) {

                var cookieArr = document.cookie.split(";");

                for (var i = 0; i < cookieArr.length; i++) {

                    var cookie = cookieArr[i].trim();

                    if (cookie.indexOf(cookieName) === 0) {

                        return cookie.substring(cookieName.length + 1, cookie.length);

                    }

                }

            }

        }

        return "";

    }

    /**

     * @description 根据指定cookie名检测cookie是否存在

     * @param {string} cookieName cookie名

     * @returns {boolean}

     */

    function checkCookie(cookieName) {

        if (typeof cookieName === "string" && cookieName.trim() !== ""){

            var cookieValue = getCookie(cookieName);

            if (cookieValue !== "" && cookieValue !== null && cookieValue !== undefined){

                return true;

            }

        }

        return false;

    }

    /**

     * @description 根据指定cookie名删除cookie

     * @param {string} cookieName cookie名

     * @returns {boolean}

     */

    function deleteCookie(cookieName) {

        if (typeof cookieName === "string" && cookieName.trim() !== ""){

            var cookieValue = getCookie(cookieName);

            if (cookieValue !== "" && cookieValue !== null && cookieValue !== undefined){

                var date = new Date();

                document.cookie = cookieName + "=;expires=" + date.toUTCString();

                return true;

            }

        }

        return false;

    }

  • 相关阅读:
    用例图解析
    A B C D类网络地址
    B-树特征
    常用的中间代码
    UML图
    关于文件索引的一道习题
    数据流图的一些原则
    系统总线
    各种排序方法的时间复杂度、空间复杂度和稳定性统计表
    模拟银行自助终端系统
  • 原文地址:https://www.cnblogs.com/zhuwenqi2016/p/7374946.html
Copyright © 2011-2022 走看看