详细了解JSP特点之Cookie |
本文标签:JSP特点 详细了解JSP特点之Cookie 大家都传说Cookie会造成严重的安全威胁什么的,其实不是这么回事情.服务器读取Cookie的时候,只能够读取到这个服务器相关的信息.而且,浏览器一般只允许存放300个Cookie,每个站点最多存放20个,而且,每个Cookie的大小现在在4K,根本不会占用多少空间.并且,Cookie是有时效性质的.例如,设置了Cookie的存活时间为1分钟,则一分钟后这个Cookie就会被浏览器删除 1.服务器可以向客户端写内容 2.只能是文本内容,且大小为4K(安全) 3.客户端可以阻止服务器写入 4.只能拿自己webapp写入的东西(安全) 5.Cookie分为两种 a.属于窗口/子窗口(放在内存中),窗口一关闭,即Cookie内容失效 b.写在本地磁盘的文本(有生命周期) 6.一个servlet/jsp设置的cookie能够被同一个路径下面或者子路径下面的servlet/jsp读到(路径=url) (路径!=真实文件路径) 也就是说,子路径下生成的cookie,父路径不能读取 父路径生成的cookie,子路径能读取 JSP中对Cookie的操作:类型方法名方法解释 StringgetComment()返回cookie中注释,如果没有注释的话将返回空值. StringgetDomain()返回cookie中Cookie适用的域名.使用getDomain()方法可以指示浏览器把Cookie返回给同一域内的其他服务器,而通常Cookie只返回给与发送它的服务器名字完全相同的服务器 。注意域名必须以点开始 intgetMaxAge()返回Cookie过期之前的最大时间,以秒计算 。 StringgetName()返回Cookie的名字 StringgetPath()返回Cookie适用的路径 。如果不指定路径,Cookie将返回给当前页面所在目录及其子目录下的所有页面 。 booleangetSecure()如果浏览器通过安全协议发送cookies将返回true值,如果浏览器使用标准协议则返回false值 。 StringgetValue()返回Cookie的值 。笔者也将在后面详细介绍getValue/setValue 。 intgetVersion()返回Cookie所遵从的协议版本 。 voidsetComment(Stringpurpose)设置cookie中注释 voidsetDomain(Stringpattern)设置cookie中Cookie适用的域名 voidsetMaxAge(intexpiry)以秒计算,设置Cookie过期时间 。 voidsetPath(Stringuri)指定Cookie适用的路径 。 voidsetSecure(booleanflag)指出浏览器使用的安全协议,例如HTTPS或SSL 。 voidsetValue(StringnewValue)cookie创建后设置一个新的值 。 voidsetVersion(intv)设置Cookie所遵从的协议版本 一个简单的例子 1.写入Cookie---writecookie.jsp
2.读取Cookie.jsp---readcookie.jsp
需要注意的两个JSP特点的问题: 1.Cookie有个适用路径的问题,就是说如果writecookie.jsp和readcookie.jsp要放在同意目录下,如果不在同一目录下,则写的时候需要设置路径,为readcookie.jsp所在的路径. 2.读入Cookie数组的时候需要判断是否为空(null),网上很多代码都没有写出这一点. |