如果js中的cookie使用escape编码,java中使用 URLDecoder.decode(cookieValue,"utf-8");进行解码..
这两天学习、写了些web客户端的js代码,下面总结下分享给大家,主要为js保存、获取cookie和js获取各种类型的控件值的方法:
1、js保存cookie
<script type="javascript">
function setCookie(name,value){ //name为cookie的名称,value为name值
var days = 10; //保存天数,可作为参数传进来
var expires = new Date(); //建立日期变量
expires.setTime(expires.getTime() + days * 30 * 24 * 60 * 60 * 1000); //expires过期时间 = 当前时间 +过期时间(秒)
var str = name + ‘=’ + value +’;expires=’ + expires.toGMTString(); //将值及过期时间一起保存至cookie中(需以GMT格式表示的时间字符串)
//var str = name + ‘=’ + escape(value) +’;expires=’ + expires.toGMTString();
document.cookie = str;
document.cookie = name+"="+value+";expires="+expdate.toGMTString()+";path=/";
//即document.cookie= name+"="+value+";path=/"; 时间可以不要,但路径(path)必须要填写,因为JS的默认路径是当前页,如果不填,此cookie只在当前页面生效!~
}
</script>
下面为通用版保存cookie
<script language="JavaScript" type="text/javascript">
<!–
function addCookie(name,value,expireHours){
var cookieString=name+"="+escape(value);
if(expireHours>0){ //判断是否设置过期时间
var date=new Date();
date.setTime(date.getTime+expireHours*3600*1000);
cookieString=cookieString+"; expire="+date.toGMTString();
}
document.cookie=cookieString;
}
//–>
</script>
蓝色部分解释:
方法是用escape()函数进行编码,它能将一些特殊符号使用十六进制表示,例如空格将会编码为“20%”,从而可以存储于 cookie值中,而且使用此种方案还可以避免中文乱码的出现。
例如:
document.cookie="str="+escape("I love js");
相当于:
document.cookie="str=I%20love%20js";
当使用escape()编码后,在取出值以后需要使用unescape()进行解码才能得到原来的cookie值
2、js获取cookie值
介绍两种方法:
a.常规的循环字符输出方法
function getCookie(name){//name为cookie名称
var strcookie = document.cookie;//获取cookie字符串
var arr = strcookie.split(‘;’); //分割cookie
for(var i = 0;i<arr.length;i++){
var arrStr = arr.split(‘=’); //对各个cookie进行分割
if(arrStr[0] == name) return arrStr[1]; //判断是否存在cookie名称为name并输出
}
return ""; //返回
}
b.使用unescape获取cookie方法
function getCookie(name){
var _password = document.getElementById(‘password’);
var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)")); //通过正则表达式获取cookie为name的字符组
if(arr!=null){
return unescape(arr[2]); //输入返回
}
return ”;
}
3、删除cookie
<script language="JavaScript" type="text/javascript">
<!–
//获取当前时间
var date=new Date();
//将date设置为过去的时间
date.setTime(date.getTime()-10000);
//将userId这个cookie删除
document.cookie="userId=828; expire="+date.toGMTString();
//–>
</script>
<script language="JavaScript" type="text/javascript">
<!–
function deleteCookie(name){
var date=new Date();
date.setTime(date.getTime()-10000);
document.cookie=name+"=v; expire="+date.toGMTString();
}
//–>
</script>
相关推荐
JavaScript无法直接删除Cookie,但可以通过设置一个过期日期早于当前时间的相同名称的Cookie,达到间接删除的效果,因为浏览器会优先保留有效日期更近的Cookie。 了解并熟练掌握以上知识点,对于进行Java Web开发...
本文将深入讲解如何使用JavaScript设置和获取Cookie。 1. **设置Cookie** 设置Cookie主要通过`document.cookie`属性来实现。下面是一个设置Cookie的函数实例: ```javascript function setCookie(cookieName, ...
本文将深入探讨SpringSession如何支持Cookie和header策略,并解析`CookieHeaderHttpSessionStrategy.java`这个文件中的关键概念和技术细节。 首先,我们来看标题提及的“SpringSession同时支持Cookie和header策略”...
在Java中,可以使用HttpServletResponse的`addCookie(Cookie cookie)`方法设置Cookie,同时,对于中文字符,可以使用URLEncoder.encode方法进行编码。在HTML中,可以使用JavaScript的document.cookie属性来获取和...
但在Ajax请求中,由于JavaScript默认使用UTF-8编码发送数据,当这些UTF-8编码的数据被GBK编码的后端接收并尝试解码时,就会产生乱码。 解决这个问题的关键在于如何让Ajax请求在发送时明确告知后端其编码方式,并且...
在JavaScript中,通过`document.cookie`属性可以读写Cookie,但通常不推荐直接操作,因为属性值需要正确的编码和解码。 ### 注意事项 虽然Cookie提供了一种方便的方式来跟踪和识别用户,但过度依赖Cookie可能会...
总结来说,这个JavaScript函数`URLDecode`是为了在Firefox浏览器下解码Cookie中URL编码的中文字符串而设计的,其工作方式是通过一个包含常见中文字符的数组进行匹配和替换。这个函数可能在处理非标准或不完全符合...
思路:将中文编码改成UTF-8编码格式,传到前台,再用JS将其解码. 具体做法:将设置cookie的相关代码改为: Server.URLEncode(“中文”) 将获取cookie的相关JS代码改为: 代码如下: var tmp=[removed].split(“;”)[0]....
在本知识点中,我们将详细讨论如何在Java Web应用中使用Cookie保存中文信息以及如何通过Cookie实现一个简单的购物车功能。 首先,要了解Cookie的基本使用方法,它可以通过HTTP响应头在服务器和客户端之间传递。创建...
从`request.getCookies()`获取Cookie数组后,遍历找到指定名称的Cookie,然后将Cookie值解码为GBK,以便正确显示中文: ```java for (int i = 0; i ; i++) { if (cook[i].getName().equals("BF_Chat")) { return...
`CTool.java` 可能会包含管理cookie的方法,如`addCookie(HttpResponse response, String key, String value)` 和 `getCookieValue(HttpRequestBase request, String key)`。 8. **Session管理**: 对于处理Web...
本文档《web编码问题小结》详细总结了Java开发中可能遇到的各种编码问题及其解决方案,覆盖了数据库、Cookie、静态页面、POST与GET请求等多种场景。 #### 数据库的中文问题 数据库的中文问题主要源于数据库与应用...
JavaScript提供了编码和解码的方法,如escape()和unescape()。obj.parentElement和obj.parentNode用于获取对象的父级元素。可以通过TableID.moveRow()方法交换表格中的行。document.all.csss.href="a.css"用于替换...
此外,URL编码和解码也是处理链接时常见的操作。 3. **会员登陆注册**:这部分涉及到用户认证和授权。通常使用session和cookie来跟踪用户状态。用户输入的账号密码通过加密算法(如MD5或SHA)进行存储,保证安全性...
JavaScript还提供了处理字符串、编码和解码的方法,如`escape()`和`unescape()`。此外,`typeof`操作符用于确定变量的数据类型,例如`typeof($js_libpath) == "undefined"`检查变量是否已定义。 在处理表格时,`...
不过,现代JavaScript更推荐使用`encodeURIComponent()`和`decodeURIComponent()`来编码和解码URL,因为它们更全面,能正确处理更多字符。 在HTML中,存在一些需要转义的字符,如`&`(`&`)、`(`<`)、`>`...
### Java Servlet和JSP教程知识点概览 #### 1. Java Servlet ##### 1.1 Java Servlet概述 - **定义**: Servlet是Java EE平台提供的一个关键组件,它允许开发者创建高性能、灵活且可扩展的Web应用程序。Servlet是...
本文将深入探讨如何使用JavaScript进行基本的Cookie操作,包括设置、获取和删除。 首先,我们要了解Cookie的基本结构。每个Cookie由名称、值、过期时间、访问路径、访问域和安全标志等属性组成。JavaScript中没有...
在JavaScript中,Cookie是一种在客户端存储少量数据的技术,主要用于用户状态管理、个性化设置以及轻量级的数据持久化。本文将详细解析Cookie的使用方法及其重要属性。 首先,创建Cookie需要设置其基本属性: 1. *...
JavaScript:定义行为和动作 (基于对象和事件驱动的客户端脚本语言;也是一种广泛应用于客户端Web开发的脚本语言) 基于对象:网页中的一切元素都是假象!不需要new,即可直接使用 事件驱动:JavaScript的执行都是...