仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 652|回复: 8
打印 上一主题 下一主题

[学习教程] JAVA网站制作之JSP怎样读写Cookie

[复制链接]
飘灵儿 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:06:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
他们对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[i];
  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[i]掏出数组中的一个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开发是跨平台,任何系统上都可以运行,对于保密型系统和大型系统开发这是必要的
兰色精灵 该用户已被删除
沙发
发表于 2015-1-18 14:49:44 | 只看该作者
如果要向javaweb方向发展也要吧看看《Javaweb从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
莫相离 该用户已被删除
板凳
发表于 2015-1-22 07:04:52 | 只看该作者
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
admin 该用户已被删除
地板
发表于 2015-1-30 23:33:58 | 只看该作者
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
谁可相欹 该用户已被删除
5#
发表于 2015-2-6 16:58:00 | 只看该作者
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
飘灵儿 该用户已被删除
6#
 楼主| 发表于 2015-2-17 10:42:54 | 只看该作者
Java是一种计算机编程语言,拥有跨平台、面向对java
乐观 该用户已被删除
7#
发表于 2015-3-5 19:20:24 | 只看该作者
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
蒙在股里 该用户已被删除
8#
发表于 2015-3-12 11:47:59 | 只看该作者
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
愤怒的大鸟 该用户已被删除
9#
发表于 2015-3-19 21:40:07 | 只看该作者
是一种将安全性(Security)列为第一优先考虑的语言
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-9-21 01:44

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表