用JSP操作者Cookie一、前言说道一起,Cookie应当是一种应用于较长的技术了。早在HTML刚经常出现的时候,在每个独立国家的页面之间没办法记录和标识有所不同的用户。后来人们就发明者了Cookie技术,当用户采访网页时,它需要在访问者的机器上创办一个文件,我们把它叫做Cookie,写出一段内容进来,来标识有所不同的用户。如果下次用户再行采访这个网页的时候,它又需要朗读这个文件里面的内容,这样网页就告诉上次这个用户早已采访过该网页了。
虽然现在网页的制作技术相比几年以前早已发展了许多。不过有些时候,Cookie还是需要老大我们很多整天的。接下来,我们就来想到,如何在写出jsp文件的时候,用JSP操作者Cookie。1/7二、载入Cookie只不过用JSP操作者Cookie是非常简单的,我们来看下面一段JSP程序:........(中间额)<%StringcookieName=Sender;Cookiecookie=newCookie(cookieName,Test_Content);cookie.setMaxAge(10);response.addCookie(cookie);%>........(其他内容)2/7这样我们就设置了一个Cookie,很非常简单吧?我们来细心研究一下这段代码:Cookiecookie=newCookie(cookieName,Test_Content);这一行创建了一个Cookie对象,初始化有两个参数,第一个参数cookieName定义了Cookie的名字,后一个参数,也是一个字符串,定义了Cookie的内容。
也就是我们期望网页在用户的机器上标识的文件内容。接下来一行:cookie.setMaxAge(10),调用了Cookie中的setMaxAge方法,原作Cookie在用户机器硬盘上的存活期为10秒。
一个Cookie在用户的硬盘里面不存在的时间并不是无限期的,在创建Cookie对象的时候,我们必需制订Cookie的存活期,多达了这个存活期后,Cookie文件就仍然起起到,不会被用户的浏览器自行移除。如果我们期望用户在下次访问这个页面的时候,Cookie文件依然有效地而且可以被网页读出来的话,我们可以将Cookie的存活期另设得略为宽一些。比如cookie.setMaxAge(365*24*60*60)可以让Cookie文件在一年内有效地。
3/7三、朗读CookieCookie文件创建好后,大自然还必须我们把它读出来,否则我们不是白费力气吗?接下来我们想到如何朗读在用户硬盘上的Cookie。........(中间额)Namevalue<%Cookiecookies[]=request.getCookies();CookiesCookie=null;Stringsvalue=null;Stringsname=null;for(inti=0;i{4/7sCookie=cookies[i];svalue=sCookie.getValue();sname=sCookie.getName();%><%}%>name value<%=name%> <%=svalue%>........(其他内容)这部分段JSP文件可以朗读用户硬盘上的所有有效地的Cookie,也就是依然在存活期内的Cookie文件。后用表格的形式所列每个Cookie的名字和内容。5/7我们来逐行分析一下这段代码:Cookiecookies[]=request.getCookies()我们用request.getCookies()朗读用户硬盘上的Cookie,并将所有的Cookie放在一个cookie对象数组里面。
接下来我们用一个循环语句迭代刚才创建的Cookie对象数组,我们用sCookie=cookies[i]放入数组中的一个Cookie对象,然后我们用sCookie.getValue()和sCookie.getName()两个方法来获得这个Cookie的名字和内容。通过将放入来的Cookie的名字和内容放到字符串变量中,我们就能对其展开各种操作者了。在上面的例子里,可通过循环语句的迭代,将所有Cookie放到一张表格中展开表明。
6/7四、必须留意的一些问题通过上面两个非常简单的例子,可以看见,用JSP展开Cookie的操作者,是非常简单的。不过我们在实际操作中还要留意一些问题:1.Cookie的兼容性问题Cookie的格式有2个有所不同的版本,第一个版本,我们称作CookieVersion0,是最初由Netscape公司制订的,也被完全所有的浏览器反对。而较新的版本,CookieVersion1,则是根据RFC2109文档制订的。为了保证兼容性,JAVA规定,前面所提及的牵涉到Cookie的操作者都是针对旧版本的Cookie展开的。
而新版本的Cookie目前还不被Javax.servlet.http.Cookie包所反对。7/72.Cookie的内容某种程度的Cookie的内容的字符容许针对有所不同的Cookie版本也有有所不同。在CookieVersion0中,某些类似的字符,例如:空格,方括号,圆括号,等于号(=),逗号,双引号,斜杠,问号,符号,冒号,分号都无法作为Cookie的内容。
这也就是为什么我们在例子中原作Cookie的内容为Test_Content的原因。虽然在CookieVersion1规定中限制了容许,可以用于这些字符,但是考虑到新版本的Cookie规范目前依然没为所有的浏览器所反对,因而为保险起见,我们应当在Cookie的内容中尽量避免用于这些字符。
本文来源:manbext官网(集团)有限公司,官网-www.nhbeadbop.com