GVKun编程网logo

js、java获取cookie(java 获取cookie值)

21

对于js、java获取cookie感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍java获取cookie值,并为您提供关于JAVAweb错误-获取Cookie报错Aninvalidcharac

对于js、java获取cookie感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍java 获取cookie值,并为您提供关于JAVA web错误-获取Cookie报错An invalid character [32] was present in the Cookie value、javascript中cookie是什么及怎么读取cookie?、javascript创建cookie、读取cookie、JavaScript获取cookie以及删除cookie详解的有用信息。

本文目录一览:

js、java获取cookie(java 获取cookie值)

js、java获取cookie(java 获取cookie值)

js获取设置cookie方式


function getCookie(c_name)
{
alert(document.cookie);
if (document.cookie.length>0)
{
c_start=document.cookie.indexOf(c_name + "=")
if (c_start!=-1)
{
c_start=c_start + c_name.length+1
c_end=document.cookie.indexOf(";",c_start)
if (c_end==-1) c_end=document.cookie.length
return unescape(document.cookie.substring(c_start,c_end))
}
}
return ""
}

function setCookie(c_name,value,expiredays)
{
var exdate=new Date()
exdate.setDate(exdate.getDate()+expiredays)
document.cookie=c_name+ "=" +escape(value)+
((expiredays==null) ? "" : ";expires="+exdate.toGMTString())
}

function checkCookie()
{
username=getCookie(''username'')
if (username!=null && username!="")
{alert(''Welcome again ''+username+''!'')}
else
{
username=prompt(''Please enter your name:'',"")
if (username!=null && username!="")
{
setCookie(''username'',username,365)
}
}
}

js不能获取到的HttpOnly属性

一、属性说明:
1 secure属性
当设置为true时,表示创建的 Cookie 会被以安全的形式向服务器传输,也就是只能在 HTTPS 连接中被浏览器传递到服务器端进行会话验证,如果是 HTTP 连接则不会传递该信息,所以不会被窃取到Cookie 的具体内容。
2 HttpOnly属性
如果在Cookie中设置了"HttpOnly"属性,那么通过程序(JS脚本、Applet等)将无法读取到Cookie信息,这样能有效的防止XSS攻击。

需要用java获取

Cookie cookies[]=request.getCookies(); 

JAVA web错误-获取Cookie报错An invalid character [32] was present in the Cookie value

问题描述:在响应中添加cookie的过程中出现以下异常

java.lang.IllegalArgumentException: An invalid character [32] was present in the Cookie value
	org.apache.tomcat.util.http.Rfc6265CookieProcessor.validateCookieValue(Rfc6265CookieProcessor.java:182)
	org.apache.tomcat.util.http.Rfc6265CookieProcessor.generateHeader(Rfc6265CookieProcessor.java:115)
	org.apache.catalina.connector.Response.generateCookieString(Response.java:1010)
	org.apache.catalina.connector.Response.addCookie(Response.java:962)
	org.apache.catalina.connector.ResponseFacade.addCookie(ResponseFacade.java:385)
	org.apache.jsp.deal_jsp._jspService(deal_jsp.java:126)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:443)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)

代码如下所示:

Cookie cookie1 = new Cookie("username", m.replaceAll("").trim());
cookie1.setPath("/");
cookie1.setMaxAge(60 * 60 * 3);
resp.addCookie(cookie1);
req.getRequestDispatcher("/loginsuccess.jsp").forward(req, resp);

由于我是在尝试sql注入,所以输入的内容包含特殊字符,我以为是特殊字符惹的祸,然后我就用正则去除了特殊字符,但是依然报这个错误,在网上查找资料的过程中看到说是空格的影响,所以去除了空格。

Cookie cookie1 = new Cookie("username", m.replaceAll("").replace(" ",""));
cookie1.setPath("/");
cookie1.setMaxAge(60 * 60 * 3);
resp.addCookie(cookie1);
req.getRequestDispatcher("/loginsuccess.jsp").forward(req, resp);

然后,就没有报错啦~

参考链接:https://blog.csdn.net/allan_liu_/article/details/74990162

javascript中cookie是什么及怎么读取cookie?

javascript中cookie是什么及怎么读取cookie?

 什么是cookie

由于HTTP是一种无状态的协议,服务器单从网络连接上无从知道客户身份。怎么办呢?就给客户端们颁发一个通行证吧,每人一个,无论谁访问都必须携带自己通行证。这样服务器就能从通行证上确认客户身份了。这就是Cookie的工作原理。

Cookie实际上是一小段的文本信息。客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。服务器还可以根据需要修改Cookie的内容。

 Cookie机制

在程序中,会话跟踪是很重要的事情。理论上,一个用户的所有请求操作都应该属于同一个会话,而另一个用户的所有请求操作则应该属于另一个会话,二者不能混淆。例如,用户A在超市购买的任何商品都应该放在A的购物车内,不论是用户A什么时间购买的,这都是属于同一个会话的,不能放入用户B或用户C的购物车内,这不属于同一个会话。

立即学习“Java免费学习笔记(深入)”;

而Web应用程序是使用HTTP协议传输数据的。HTTP协议是无状态的协议。一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接。这就意味着服务器无法从连接上跟踪会话。即用户A购买了一件商品放入购物车内,当再次购买商品时服务器已经无法判断该购买行为是属于用户A的会话还是用户B的会话了。要跟踪该会话,必须引入一种机制。

Cookie就是这样的一种机制。它可以弥补HTTP协议无状态的不足。在Session出现之前,基本上所有的网站都采用Cookie来跟踪会话。

JS设置cookie:

假设在A页面中要保存变量username的值("jack")到cookie中,key值为name,则相应的JS代码为:


 document.cookie="name="+username;
登录后复制

在cookie 的名或值中不能使用分号(;)、逗号(,)、等号(=)以及空格。在cookie的名中做到这点很容易,但要保存的值是不确定的。如何来存储这些值呢?方 法是用escape()函数进行编码,它能将一些特殊符号使用十六进制表示,例如空格将会编码为“20%”,从而可以存储于cookie值中,而且使用此 种方案还可以避免中文乱码的出现。


document.cookie="str="+escape("I love ajax"); 
// document.cookie="str=I%20love%20ajax";
登录后复制

当使用escape()编码后,在取出值以后需要使用unescape()进行解码才能得到原来的cookie值,

JS读取cookie:

假设cookie中存储的内容为:name=jack;password=123

则在B页面中获取变量username的值的JS代码如下:


var username=document.cookie.split(";")[0].split("=")[1];
//JS操作cookies方法!
//写cookies
function setCookie(name,value)
{
var Days = 30;
var exp = new Date();
exp.setTime(exp.getTime() + Days*24*60*60*1000);
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
}
登录后复制

读取cookies


function getCookie(name)
{
var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
if(arr=document.cookie.match(reg))
return unescape(arr[2]);
else
return null;
}
删除cookies
function delCookie(name)
{
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval=getCookie(name);
if(cval!=null)
document.cookie= name + "="+cval+";expires="+exp.toGMTString();
}
//使用示例
setCookie("name","hayden");
alert(getCookie("name"));
//如果需要设定自定义过期时间
//那么把上面的setCookie 函数换成下面两个函数就ok;
//程序代码
function setCookie(name,value,time)
{
var strsec = getsec(time);
var exp = new Date();
exp.setTime(exp.getTime() + strsec*1);
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
}
function getsec(str)
{
alert(str);
var str1=str.substring(1,str.length)*1;
var str2=str.substring(0,1);
if (str2=="s")
{
return str1*1000;
}
else if (str2=="h")
{
return str1*60*60*1000;
}
else if (str2=="d")
{
return str1*24*60*60*1000;
}
}
//这是有设定过期时间的使用示例:
//s20是代表20秒
//h是指小时,如12小时则是:h12
//d是天数,30天则:d30
setCookie("name","hayden","s20");
登录后复制

以上就是javascript中cookie是什么及怎么读取cookie?的详细内容,更多请关注php中文网其它相关文章!

javascript创建cookie、读取cookie

javascript创建cookie、读取cookie

本文内容分为两个部分进行学习,分别介绍了javascript创建cookie、javascript读取cookie的具体实现方法,供大家学习,具体内容如下

一、创建Cookie

document.cookie = 'key=value';

有特殊字符 使用encodeURIComponent() 进行编码

document.cookie = 'user='+encodeURIComponent('郭钱;');

读取时 使用decodeURIComponent()

例如:  

rush:js;"> document.cookie = 'name=guoqian'; document.cookie = 'age=24'; document.cookie = 'address=hunan'; document.cookie = 'user='+encodeURIComponent('郭钱;');

自定义一个创建cookie方法

rush:js;"> function SetCookie(name,value,expires,path,domain,secure) { var today = new Date(); today.setTime(today.getTime()); if(expires) { expires *= 86400000; } var expires_date = new Date(today.getTime() + (expires)); document.cookie = name + "=" + escape(value) + (expires ? ";expires=" + expires_date.toGMTString() : "") + (path ? ";path=" + path : "") + (domain ? ";domain=" + domain : "") + (secure ? ";secure" : ""); }

二、获取cookie

使用字符串方式

rush:js;"> function getCookieByString(cookieName){ var start = document.cookie.indexOf(cookieName+'='); if (start == -1) return false; start = start+cookieName.length+1; var end = document.cookie.indexOf(';',start); if (end == -1) end=document.cookie.length; return document.cookie.substring(start,end); }

使用数组方式

rush:js;"> function getCookieByArray(name){ var cookies = document.cookie.split(';'); var c; for(var i=0; i

以上就是本文的全部内容,希望对大家的学习有所帮助。

JavaScript获取cookie以及删除cookie详解

JavaScript获取cookie以及删除cookie详解

Cookie,有时也用其复数形式Cookies,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。本文我们就和大家分享JavaScript获取cookie以及删除cookie的知识,希望能帮助到大家。

cookie存在哪?

存在document.cookie中

cookie长啥样?

cookie是一个字符串,长下面这样:
"name=xxx; age=22;"

注意:分号后面有个空格,记住这一点,下面的代码需要特别注意这一点

如果我想根据键名来获取cookie, 怎么做?

<span>function getCookie(name) {<br>  var value = ''; ''+ document.cookie;<br>  var parts = value.split(''; '' + name + ''='');<br>  if(parts.length === 2) {<br>    return parts.pop().split('';'').shift();<br>  }<br>}<br></span>
登录后复制
登录后复制

原理分析:
假设现在的document.cookie的值为:
myName=xxx; age=22; food=apple;
var value = ''; ''+ document.cookie;使其变为; myName=xxx; age=22; food=apple;
var parts = value.split(''; '' + name + ''=''); 假设传入的nameage, 那么会根据; age=分割字符串,分割之后得到的数组为:
[''myName=xxx'', ''22; food=apple;'']
if(parts.length === 2)说明根据键名得到了对应的值,parts.pop()返回的是数组中的最后一项,即22; food=apple;,然后调用split('';'')得到数组[''22'', ''food=apple;''],然后调用shift()会返回数组的第一项,即22, 即可得到我们想要的值

深思: var value = ''; ''+ document.cookie; 这句代码是整个方法的精髓。

立即学习“Java免费学习笔记(深入)”;

如果我想根据键名来删除cookie, 怎么做?

<span>function deleteCookie(name) {<br>  document.cookie = name + ''=;  expires=Thu, 01 Jan 1970 00:00:01 GMT;''<br>}<br></span>
登录后复制
登录后复制

原理分析:
设置cookie过期时间小于当前时间,那么就会删除该cookie。

cookie存在哪?

存在document.cookie中

cookie长啥样?

cookie是一个字符串,长下面这样:
"name=xxx; age=22;"

注意:分号后面有个空格,记住这一点,下面的代码需要特别注意这一点

如果我想根据键名来获取cookie, 怎么做?

<span>function getCookie(name) {<br>  var value = ''; ''+ document.cookie;<br>  var parts = value.split(''; '' + name + ''='');<br>  if(parts.length === 2) {<br>    return parts.pop().split('';'').shift();<br>  }<br>}<br></span>
登录后复制
登录后复制

原理分析:
假设现在的document.cookie的值为:
myName=xxx; age=22; food=apple;
var value = ''; ''+ document.cookie;使其变为; myName=xxx; age=22; food=apple;
var parts = value.split(''; '' + name + ''=''); 假设传入的nameage, 那么会根据; age=分割字符串,分割之后得到的数组为:
[''myName=xxx'', ''22; food=apple;'']
if(parts.length === 2)说明根据键名得到了对应的值,parts.pop()返回的是数组中的最后一项,即22; food=apple;,然后调用split('';'')得到数组[''22'', ''food=apple;''],然后调用shift()会返回数组的第一项,即22, 即可得到我们想要的值

深思: var value = ''; ''+ document.cookie; 这句代码是整个方法的精髓。

立即学习“Java免费学习笔记(深入)”;

如果我想根据键名来删除cookie, 怎么做?

<span>function deleteCookie(name) {<br>  document.cookie = name + ''=;  expires=Thu, 01 Jan 1970 00:00:01 GMT;''<br>}<br></span>
登录后复制
登录后复制

原理分析:
设置cookie过期时间小于当前时间,那么就会删除该cookie。

相关推荐:

jQuery的Cookie使用方法

cookie属性和方法解析

JavaScript中cookie的添加与删除的基本操作

以上就是JavaScript获取cookie以及删除cookie详解的详细内容,更多请关注php中文网其它相关文章!

关于js、java获取cookiejava 获取cookie值的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于JAVA web错误-获取Cookie报错An invalid character [32] was present in the Cookie value、javascript中cookie是什么及怎么读取cookie?、javascript创建cookie、读取cookie、JavaScript获取cookie以及删除cookie详解等相关内容,可以在本站寻找。

本文标签:

上一篇找个熟悉 prototype.js 框架,外包整站前端js部分(prototype production)

下一篇nodejs入门——搭建一个聊天室应用(基于nodejs的聊天室)