现在一般Spring或者SpringBoot的话都已经集成Cookie的获取方法,想要更简单便捷的话可以自行去了解下,这边主要是分享下手动编写获取的Cookie的工具类

话不多说,直接上代码
后端代码

public class CookieUtil {

	//	获取Cookie的方法
    public static String getCookie(HttpServletRequest request, String cookieid) {
		Cookie[] cookies = request.getCookies();
		 String login_number = "";
		 if(cookies!=null&&cookies.length>0){
			 for (Cookie cookie : cookies) {
				 String name = cookie.getName();
				 if(cookieid.equals(name)){
					 login_number = cookie.getValue();
				 }
			 }
		 }
        return login_number;

    }
    
    //	设置Cookie值的方法
    public static void setCookieValue(HttpServletRequest request,
            HttpServletResponse response, String cookieName, String cookieValue, Integer maxAge){
    		//TODO	对Cookie进行加密封装
    		Cookie cookie = new Cookie(cookieName, cookieValue);
			cookie.setMaxAge(maxAge); // Cookie的存活时间(自定义)
			cookie.setPath("/"); // 默认路径
			response.addCookie(cookie);
    }
	
	//	设置Cookie编码(设置Cookie的话,直接调用这个方法即可,内部会去调用设置值的方法)
    public static void setCookie(HttpServletRequest request,
            HttpServletResponse response,
            String cookieName,
            String cookieValue,
            Integer maxAge){
		try {
			cookieValue = URLEncoder.encode(cookieValue,"utf-8");
			setCookieValue(request,response,cookieName,cookieValue,maxAge);
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}
	}
    
    //	删除Cookie
    public static void deleteCookie(HttpServletRequest request,
            HttpServletResponse response,
            String cookieName) {
			try {
				String deleteValue = URLEncoder.encode("", "utf-8");
				setCookieValue(request, response, cookieName, deleteValue, 0);
			} catch (UnsupportedEncodingException e) {
				e.printStackTrace();
			}
    }
    
}

JS代码

这个方法可以取出你在浏览器存储的Cookie

// user_name是你设置的Cookie键
var userName = getCookie(“user_name”);

//查询名字为findCookieName的cookie值
function getCookie(cookieName) {
	//获取所有的Cookie,在strCookie是一个包含所有cookie的字符串。
	var strCookie = document.cookie;
	//以;为分隔符将所有的cookie进行分割。将获得的所有cookie切割成数组
	var arrCookie = strCookie.split("; ");
	//通过for循环进行遍历arrCookie数组。
	for(var i = 0; i < arrCookie.length; i++){
	       //通过=进行分割,将本次循环的cookie分割为名字(等于号前),值(等于号后面)
	        var arr = arrCookie[i].split("=");
	        //将本次循环的cookie名字与需要查找的cookie进行比较
	        if(cookieName == arr[0]){
	            //返回指定cookie的值
	            return arr[1];
	        }
	}
	//未查找到指定的cookie返回空。
	    return "";
}

到此,文章结束,感谢观看。✿✿ヽ(°▽°)ノ✿

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐