不要在cookie中使用特殊字符的原因分析


Posted in Javascript onJuly 13, 2010

Constructs a cookie with a specified name and value.

The name must conform to RFC 2109. That means it can contain only ASCII alphanumeric characters and cannot contain commas, semicolons, or white space or begin with a $ character. The cookie's name cannot be changed after creation.

The value can be anything the server chooses to send. Its value is probably of interest only to the server. The cookie's value can be changed after creation with the setValue method.

By default, cookies are created according to the Netscape cookie specification. The version can be changed with the setVersion method.

以上是java API文档中对Cookie类构造函数的说明,重点对name和value可以使用的字符进行了介绍。

参数name需要遵循规范RFC2109,也就是说name参数只能包含字母或者数字,不能包含逗号、分号、空格及美元符号。cookie的name属性设置之后不能被修改。

参数value可以是服务端设置的任意值,该值可以通过setValue方法进行重新设置。

然后实际情况并非如此!!

(1)value值中不能包含逗号,如果value中包含逗号则程序无法编译。

如果value中包含逗号,如下:

Cookie pwdCookie = new Cookie("option", "block1,block2");
则异常如下:

java.lang.IllegalArgumentException: block1,block2
在另外一篇关于JavaScript操作cookie的文章中提到:

在cookie 的名或值中不能使用分号(;)、逗号(,)、等号(=)以及空格。

总之,尽量不要在cookie中使用特殊字符。

Javascript 相关文章推荐
『JavaScript』限制Input只能输入数字实现思路及代码
Apr 22 Javascript
js和jquery设置disabled属性为true使按钮失效
Aug 07 Javascript
js中的事件捕捉模型与冒泡模型实例分析
Jan 10 Javascript
javascript中一些util方法汇总
Jun 10 Javascript
jquery实现简单文字提示效果
Dec 02 Javascript
浅析angularJS中的ui-router和ng-grid模块
May 20 Javascript
Node.js的特点详解
Feb 03 Javascript
JavaScript正则表达式的贪婪匹配和非贪婪匹配
Sep 05 Javascript
Vue中组件之间数据的传递的示例代码
Sep 08 Javascript
vue组件之Alert的实现代码
Oct 17 Javascript
vue项目中v-model父子组件通信的实现详解
Dec 10 Javascript
小程序实现横向滑动日历效果
Oct 21 Javascript
初识javascript 文档碎片
Jul 13 #Javascript
JavaScript性能优化 创建文档碎片(document.createDocumentFragment)
Jul 13 #Javascript
通过继承IHttpHandle实现JS插件的组织与管理
Jul 13 #Javascript
jQuery.Autocomplete实现自动完成功能(详解)
Jul 13 #Javascript
javascript中字符串拼接需注意的问题
Jul 13 #Javascript
转换json格式的日期为Javascript对象的函数
Jul 13 #Javascript
Jquery+WebService 校验账号是否已被注册的代码
Jul 12 #Javascript
You might like
PHP运行时强制显示出错信息的代码
2011/04/20 PHP
PHP下通过exec获得计算机的唯一标识[CPU,网卡 MAC地址]
2011/06/09 PHP
完美解决PHP中的Cannot modify header information 问题
2013/08/12 PHP
php使用多个进程同时控制文件读写示例
2014/02/28 PHP
PHP错误和异长常处理总结
2014/03/06 PHP
PHP获取一年中每个星期的开始和结束日期的方法
2015/02/12 PHP
SESSION存放在数据库用法实例
2015/08/08 PHP
PHP控制前台弹出对话框的实现方法
2016/08/21 PHP
鼠标事件延时切换插件
2011/03/12 Javascript
JavaScript点击按钮后弹出透明浮动层的方法
2015/05/11 Javascript
浅谈Node.js中的定时器
2015/06/18 Javascript
详解原生JavaScript实现jQuery中AJAX处理的方法
2016/05/10 Javascript
easyUI实现类似搜索框关键词自动提示功能示例代码
2016/12/27 Javascript
JavaScript实现大图轮播效果
2017/01/11 Javascript
JS正则表达式验证密码格式的集中情况总结
2017/02/23 Javascript
ES6学习笔记之正则表达式和字符串正则方法分析
2017/04/25 Javascript
JS实现小球的弹性碰撞效果
2017/11/11 Javascript
react配置antd按需加载的使用
2019/02/11 Javascript
解决vue bus.$emit触发第一次$on监听不到问题
2020/07/28 Javascript
vue离开当前页面触发的函数代码
2020/09/01 Javascript
echarts浮动显示单位的实现方法示例
2020/12/04 Javascript
[01:06]DOTA2小知识课堂 Ep.01 TP出门不要忘记帮队友灌瓶哦
2019/12/05 DOTA
Python selenium文件上传方法汇总
2020/11/19 Python
Python中的上下文管理器和with语句的使用
2018/04/17 Python
Python flask框架post接口调用示例
2019/07/03 Python
PyQt5 QDockWidget控件应用详解
2020/08/12 Python
如何用Python 加密文件
2020/09/10 Python
Python Selenium异常处理的实例分析
2021/02/28 Python
汉米尔顿手表官网:Hamilton
2020/09/13 全球购物
个人简历自荐信
2013/12/05 职场文书
事业单位接收函
2014/01/10 职场文书
护理专业自我鉴定
2014/01/30 职场文书
活动倡议书范文
2014/05/13 职场文书
小学英语复习计划
2015/01/19 职场文书
2015双创工作总结
2015/07/24 职场文书
浅谈怎么给Python添加类型标注
2021/06/08 Python