JAVA网站制作之JSP怎样读写Cookie
他们对jsp,servlet,javabean进行封装就是为了展示他们的某个思想,与java的开发并没有必然的关系,也不见得在所以情况下,别人使用起来会简单。提及来,Cookie应当是一种使用较久的手艺了。早在HTML方才呈现的时分,在每一个自力的页面之间没有举措纪录和标识分歧的用户。厥后人们就创造了Cookie手艺,当用户会见网页时,它可以在会见者的呆板上创建一个文件,我们把它叫作Cookie,写一段内容出来,来标识分歧的用户。假如下次用户再会见这个网页的时分,它又可以读出这个文件内里的内容,如许网页就晓得前次这个用户已会见过该网页了。提及来,Cookie应当是一种使用较久的手艺了。早在HTML方才呈现的时分,在每一个自力的页面之间没有举措纪录和标识分歧的用户。厥后人们就创造了Cookie手艺,当用户会见网页时,它可以在会见者的呆板上创建一个文件,我们把它叫作Cookie,写一段内容出来,来标识分歧的用户。假如下次用户再会见这个网页的时分,它又可以读出这个文件内里的内容,如许网页就晓得前次这个用户已会见过该网页了。固然如今网页的制造手艺比起几年之前已开展了很多。不外有些时分,Cookie仍是可以帮我们良多忙的。接上去,我们就来看看,怎样在写JSP文件的时分,用JSP操纵Cookie.
写进Cookie
实在用JSP操纵Cookie长短常复杂的,我们来看上面一段JSP程序:
<html>
<head>……(两头略)
</head>
<body>
<%
StringcookieName="Sender";
Cookiecookie=newCookie(cookieName,"Test_Content");
cookie.setMaxAge(10);
response.addCookie(cookie);
%>
……(其他内容)
</body>
</html>
如许我们就设置了一个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文件在一年内无效
读出Cookie
Cookie文件创立好后,天然还必要我们把它读出来,不然我们不是白搭力量吗?接上去我们看看怎样读出在用户硬盘上的Cookie.
<html>
<head>……(两头略)
</head>
<body>
<tableborder=1>
<tr><td>Name</td><td>value</td></tr>
<%
Cookiecookies[]=request.getCookies();
CookiesCookie=null;
Stringsvalue=null;
Stringsname=null;
for(inti=0;i<cookies.length;i++)
{
sCookie=cookies;
svalue=sCookie.getValue();
sname=sCookie.getName();
%>
<tr><td><%=sname%></td><td><%=svalue%></td></tr>
<%
}
%>
</table>……(其他内容)
</body>
</html>
这一小段JSP文件能够读出用户硬盘上的一切无效的Cookie,也就是仍旧在存活期内的Cookie文件。并用表格的情势列出每一个Cookie的名字和内容。
我们来逐行剖析一下这段代码:
Cookiecookies[]=request.getCookies()我们用request.getCookies()读出用户硬盘上的Cookie,并将一切的Cookie放到一个cookie对象数组内里。
接上去我们用一个轮回语句遍历方才创建的Cookie对象数组,我们用sCookie=cookies掏出数组中的一个Cookie对象,然后我们用sCookie.getValue()和sCookie.getName()两个办法来获得这个Cookie的名字和内容。
经由过程将掏出来的Cookie的名字和内容放在字符串变量中,我们就可以对其举行各类操纵了。在下面的例子里,可经由过程轮回语句的遍历,将一切Cookie放在一张表格中举行显现。
必要注重的一些成绩
经由过程下面两个复杂的例子,能够看到,用JSP举行Cookie的操纵,长短常复杂的。不外我们在实践操纵中还要注重一些成绩:
1.Cookie的兼容性成绩
Cookie的格局有2个分歧的版本,第一个版本,我们称为CookieVersion0,是最后由Netscape公司制订的,也被几近一切的扫瞄器撑持。而较新的版本,CookieVersion1,则是依据RFC2109文档制订的。为了确保兼容性,JAVA划定,后面所提到的触及Cookie的操纵都是针对旧版本的Cookie举行的。而新版本的Cookie今朝还不被Javax.servlet.http.Cookie包所撑持。
2.Cookie的内容
一样的Cookie的内容的字符限定针对分歧的Cookie版本也有分歧。在CookieVersion0中,某些特别的字符,比方:空格,方括号,圆括号,即是号(=),逗号,双引号,斜杠,问号,@标记,冒号,分号都不克不及作为Cookie的内容。这也就是为何我们在例子中设定Cookie的内容为“Test_Content”的缘故原由。
固然在CookieVersion1划定中放宽了限定,可使用这些字符,可是思索到新版本的Cookie标准今朝仍旧没无为一切的扫瞄器所撑持,因此为保险起见,我们应当在Cookie的内容中只管制止利用这些字符
windows系统样,他们做了什么事或者留了一些后门程序,谁都不知道,二,java开发是跨平台,任何系统上都可以运行,对于保密型系统和大型系统开发这是必要的 如果要向javaweb方向发展也要吧看看《Javaweb从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。 是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言 我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。 Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。 Java是一种计算机编程语言,拥有跨平台、面向对java 是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言 如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。 是一种将安全性(Security)列为第一优先考虑的语言
页:
[1]