时间: 2021-07-31 作者:daque
说起来,cookie该当是一种运用较久的本领了。早在html方才展示的功夫,在每个独力的页面之间没有方法记载和标识各别的用户。厥后人们就发领会cookie本领,当用户考察网页时,它不妨在考察者的呆板上树立一个文献,咱们把它叫作cookie,写一段实质进去,来标识各别的用户。即使下次用户再考察这个网页的功夫,它又不妨读出这个文献内里的实质,如许网页就领会上回这个用户仍旧考察过该网页了。
固然此刻网页的创造本领比起几年往日仍旧兴盛了很多。然而有些功夫,cookie仍旧不妨帮咱们很多忙的。接下来,咱们就来看看,怎样在写jsp文献的功夫,用JSP操作Cookie。
二、 写入cookie
本来用JSP操作Cookie利害常大略的,咱们来看底下一段jsp步调:
........(中央略)
<% string cookiename="sender"; cookie cookie=new cookie(cookiename, "test_content"); cookie.setmaxage(10); response.addcookie(cookie); %> ........(其余实质)
如许咱们就树立了一个cookie,很大略吧?
咱们来提防接洽一下这段代码:
cookie cookie=new cookie(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文献在一年内灵验。
三、 读出cookie
cookie文献创造好后,天然还须要咱们把它读出来,要不咱们不是枉然力量吗?接下来咱们看看怎样读出在用户硬盘上的cookie。
........(中央略)
name value
<% cookie cookies[]=request.getcookies(); cookie scookie=null; string svalue=null; string sname=null; for(int i=0;i{ scookie=cookies[i]; svalue=scookie.getvalue(); sname=scookie.getname(); %>
<% } %>
name value<%=name%> <%=svalue%>
........(其余实质)
这第一小学段jsp文献不妨读出用户硬盘上的一切灵验的cookie,也即是仍旧在存有期内的cookie文献。并用表格的情势列出每个cookie的名字和实质。
咱们来逐行领会一下这段代码:
cookie cookies[]=request.getcookies() 咱们用request.getcookies()读出用户硬盘上的cookie,并将一切的cookie放到一个cookie东西数组内里。
接下来咱们用一个轮回语句遍历方才创造的cookie东西数组,咱们用scookie=cookies[i]掏出数组中的一个cookie东西,而后咱们用scookie.getvalue()和scookie.getname()两个本领来博得这个cookie的名字和实质。
经过将掏出来的cookie的名字和实质放在字符串变量中,咱们就能对其举行百般操纵了。在上头的例子里,可经过轮回语句的遍历,将一切cookie放在一张表格中举行表露。
四、 须要提防的少许题目
经过上头两个大略的例子,不妨看到,用jsp举行cookie的操纵,利害常大略的。然而咱们在本质操纵中还要提防少许题目:
1. cookie的兼容性题目
cookie的方法有2个各别的本子,第一个本子,咱们称为cookie version 0,是首先由netscape公司拟订的,也被简直一切的欣赏器扶助。而较新的本子,cookie version 1,则是按照rfc 2109文书档案拟订的。为了保证兼容性,java规则,前方所提到的波及cookie的操纵都是对准旧本子的cookie举行的。而新本子的cookie暂时还不被javax.servlet.http.cookie包所扶助。
2. cookie的实质
同样的cookie的实质的字符控制对准各别的cookie本子也有各别。在cookie version 0中,某些特出的字符,比方:空格,方括号,圆括号,即是号(=),逗点,双引号,斜杠,问号,@标记,冒号,分号都不许动作cookie的实质。这也即是干什么咱们在例子中设定cookie的实质为"test_content"的因为。
固然在cookie version 1规则中放宽了控制,不妨运用那些字符,然而商量到新本子的cookie典型暂时仍旧没成器一切的欣赏器所扶助,所以为保障起见,咱们该当在cookie的实质中尽管制止运用那些字符。(karry/群众搜集报)