概述
1. JS Cookie的设置与获取
JS在前端页面设置和获取Cookie,封装函数如下:
function setCookie(name, value, days=30, path="/"){
// 设置cookie方法
var exp = new Date();
exp.setTime(exp.getTime()+(days*24*60*60*1000)); // 设置cookie到期时间
document.cookie = name + "=" + value + ";expires=" + exp.toGMTString() + ";path="+path+";";
}
function getCookie(cname){
// 获取cookie方法
const name = cname + "=";
var res= document.cookie.split(';');
for(var i=0; i<res.length; i++) {
var data = res[i].trim();
if (data.indexOf(name)==0) { return data.substring(name.length,data.length); }
}
}
function delCookie(name, path="/") {
// 删除cookie方法
var exp = new Date();
exp.setTime(exp.getTime() - (1000)); // 设置cookie到期时间为1秒钟之前
var cval = getCookie(name);
if (cval != null){
document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString() + ";path="+path+";";
}
}
这三个封装的函数使用方式:
// 设置cookie方法示例
setCookie("username", "zjs");
// 设置带过期时间的cookie方法示例
setCookie("username", "zjs", days=7);
// 获取cookie方法示例
var username = getCookie("username");
if(username){
// 获取cookie成功
console.log(username);
}else{
// cookie不存在
console.log("ERROE: Can't get 'username' from cookie!");
}
// 删除cookie方法示例
delCookie("username");
值得注意的是,设置cookie是一项异步操作,需要一定的响应时间,当按照先后顺序设置完cookie后紧接着便获取cookie,可能会造成查询不到cookie的错误。实际操作中应在设置完成后,间隔一段时间再进行cookie获取。
// 将cookie操作写入函数中
function GetUserName(){
// 获取cookie方法示例
var username = getCookie("username");
if(username){
// 获取cookie成功
console.log(username);
}else{
// cookie不存在
console.log("ERROE: Can't get 'username' from cookie!");
}
}
// 间隔 1 秒 (1000毫秒) 后执行此函数
setTimeout(GetUserName(), 1000);
2. 在JAVA后端取得Cookie
使用springboot框架,在controller层取得cookie
在接口函数中增加参数 HttpServletRequest request, 即可使用 request.getCookies() 函数获取到cookie数组。
@Controller
@CrossOrigin(origins = "*", maxAge = 3600)
public class CookieTestController {
// cookie测试接口
@RequestMapping(value = "/cookieTest")
@ResponseBody
public String cookieTest(HttpServletRequest request){
String getKey1 = "username";
String getValue1 = null;
String getKey2 = "password";
String getValue2 = null;
Cookie[] cookies = request.getCookies();
if (cookies != null) {
for (int i = 0; i < cookies.length; i++) {
Cookie ck = cookies[i];
if (ck.getName().equals(getKey1)) {
getValue1 = ck.getValue();
}
if (ck.getName().equals(getKey2)) {
getValue2 = ck.getValue();
}
}
}
System.out.printly(getKey1+": "+getValue1);
System.out.printly(getKey2+": "+getValue2);
return "{""+getKey1+"": ""+getValue1+"",
""+getKey2+"": ""+getValue2+""}";
}
}
最后
以上就是害羞大山为你收集整理的JS Cookie的设置与获取,并在JAVA后端取得Cookie的全部内容,希望文章能够帮你解决JS Cookie的设置与获取,并在JAVA后端取得Cookie所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复