轻松实现在后端设置Cookie,并在前端取出对应的Cookie的方法

news/2024/5/18 16:10:09 标签: java, js, Cookie

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

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

java">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”);

javascript">//查询名字为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 "";
}

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


http://www.niftyadmin.cn/n/1620457.html

相关文章

《ASP.NET AJAX程序设计 I、II、III卷》的新封面效果

感觉漂亮了一些&#xff1a;&#xff09; 封面的背景是一幅地图&#xff0c;与“Atlas”的本意一致。

关于广告投放需要懂的几个关键词(DAU,DNU等等)

做个笔记~~~ DAU&#xff1a;单日活跃用户 DNU&#xff1a;单日新增用户&#xff08;等值于当天的留存用户&#xff09; CPM&#xff1a;按千次展现计费&#xff08;千次展现价格&#xff09; ECPM&#xff1a;每千次展示可以获得的广告收入 CPM是对广告主说的词&#xff0c;…

logrotate 的使用

这里写自定义目录标题1. logrotate 的使用1.1. 配置文件介绍1.2. 切割介绍1.3. 小示例: 下面一个切割 nginx 日志的配置1.4. 分享一例曾经使用过的 nginx 日志切割处理脚本1.4.1. logrotate 日志分割配置:1.4.2. 日志分割脚本1.4.3. crontab 定时执行1.4.4. 尝试解决 logrotate…

踩坑系列《十三》解决时间戳long转换int溢出(即转换值为负数)

最近业务需求&#xff0c;需要使用到 int 类型的时间戳&#xff0c;所以在使用时间戳的时候&#xff0c;由于java自带的 System.currentTimeMillis() 返回的类型是long&#xff0c;强行转换一波的话&#xff0c;是会出现数据溢出的情况。 看例子 long longTimeStamp System.c…

Eclectic Tips Tricks for Mac OS

这里写自定义目录标题Eclectic Tips & Tricks for Mac OSTable of contents1. How to Change Where Screenshots Are Saved?1.5 A Shell Script to Rename Screenshot Files2. How to Prevent macOS From Sleeping?3. How to Start (open) an App From the macOS Command…

JQuery实现全选、取消全选、反向选择

【全选】 functionselectAll() { $("input[namemultiValue]").each(function() { $(this).attr("checked", true); }); } 【取消全选】 1 function cancelSelect() {2 $("input[namemultiValue]").each(function() {3 $(this)…

jdk8 Stream的操作分类

随手记录下&#xff0c;方便以后查看(Stream的中间操作和结束操作图如下) List<String> names Arrays.asList("hello", "world"); List<String> newNames names.stream().filter(it -> it.equals("hello")).map(it -> it.t…

Helm Kubernetes 包管理器 DaemonSet

这里写自定义目录标题Helm Kubernetes 包管理器软件简介什么是 DaemonSet简介nodeAffinity场景案例作用Toleration场景案例作用ControllerRevision概念回滚原理总结Helm Kubernetes 包管理器 软件简介 Helm 帮助您管理 Kubernetes 应用程序 ——Helm Charts 帮助您定义、安装…