Leo Wang's Notepad

Struts2无法写Cookie的原因分析

在struts2项目中,希望把用户的表单输入保存在本地,而不是保存在数据库上,于是想到了cookie。

在action中可以这样写:

[sourcecode language=”java”]

Cookie cookie=new Cookie("myCookie","cookieContent");

cookie.setMaxAge(3600*24);//过期时间为一天

ServletActionContext.getResponse.addCookie(cookie);

[/sourcecode]

但是始终不能保存到客户端的硬盘上,刚开始的时候以为cookie的读写操作只能写在jsp页面中,或者只能通过javascript来操作,

后来发现不是这么回事。

关键的原因在于cookie是有大小限制的,如果想写入的内容超过了4KB,写操作便不能完成。

Microsoft Internet Explorer 符合以下的 RFC 2109 推荐最小限制:

  • 至少 300 的 cookie
  • 至少每 cookie (如构成 cookie 非终端设置 Cookie 标头的语法描述中的字符的大小为单位) 的 4096 字节
  • 至少 20 cookie,每个唯一的主机或域名

发表评论

电子邮件地址不会被公开。 必填项已用*标注