说起来 Cookie应该是一种应用较久的技术了 早在HTML刚刚出现的时候 在每个独立的页面之间没有办 法记录和标识不同的用户 后来人们就发明了Cookie技术 当用户访问网页时 它能够在访问者的机器上创立一个文件 我们把它叫作Cookie 写一段 内容进去 来标识不同的用户 如果下次用户再访问这个网页的时候 它又能够读出这个文件里面的内容 这样网页就知道上次这个用户已经访问过该网页了
虽然现在网页的制作技术比起几年以前已经发展了许多 不过有些时候 Cookie还是能够帮我们很多忙的 接下来 我们就来看看 如何在写jsp文件的时候 用JSP *** 作Cookie
二 写入Cookie
其实用JSP *** 作Cookie是非常简单的 我们来看下面一段JSP程序
(中间略)
<% String cookieName="Sender"Cookie cookie=new Cookie(cookieName "Test_Content")cookie setMaxAge( )response addCookie(cookie)%> (其他内容)
这样我们就设置了一个Cookie 很简单吧?
我们来仔细者亏锋研究一下这段代码
Cookie cookie=new Cookie(cookieName "Test_Content")
这一行建立了一个Cookie对象 初始化有两个参数 第一个参数cookieName定义了Cookie的名字 后一个参数 也是一个字符串 定义了Cookie的内容 也就是我们希望网页在用户的机器上标识的文件内容
接下来一行 cookie setMaxAge( ) 调用了Cookie中的setMaxAge方法 设定Cookie在用户机器硬盘上的 存活期为 秒 一个Cookie在首晌用户的硬盘里面存在的时间并不是无限期的 在建立Cookie对象的时候 我们必须制定Cookie的存活期 超过了 这个存活期后 Cookie文件就不再起作用 会被用户的浏览器自行删除 如果我们希望用户在下次访问这个页面的时候 Cookie文件仍然有效而且可以 被网页读出来的话 我们可以将Cookie的存活期设得稍微长一些 比如cookie setMaxAge( * * * )可以让 Cookie文件在一年内有效
三 读出Cookie
Cookie文件创建好后 自然还需要我们把它读出来 否则我们不是白费力气吗?接下来我们看看如何读出在用户硬盘上的Cookie
(中间略)
Name value
<% Cookie cookies[]=request getCookies()Cookie sCookie=nullString svalue=nullString sname=nullfor(int i= 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的 *** 作 是非常简单的 不过我们在实际 *** 作中还要注意一些问题
Cookie的兼容性问题
Cookie的格式有 个不同的版本 第一个版本 我们称为Cookie Version 是最初由Netscape公司制定的 也被几乎所有的浏览器支持 而较新的版本 Cookie Version 则是根据RFC 文档制定的 为了确保兼容性 java规定 前面所提到的涉及Cookie的 *** 作都是针对旧版本的Cookie进行的 而新版本的Cookie目前还不被Javax servlet 包所支持
Cookie的内容
同样的Cookie的内容的字符限制针对不同的Cookie版本也有不同 在Cookie Version 中 某些特殊的字符 例如 空格 方括号 圆括号 等于号(=) 逗号 双引号 斜杠 问号 @符号 冒号 分号都不能作为Cookie的内容 这也就 是为什么我们在例子中设定Cookie的内容为"Test_Content"的原因
lishixinzhi/Article/program/Java/JSP/201311/20084
JSP中cookie以及session的区别如下所列灶尺谨:隐基
1、JSP中的session在用户会话结束后就会关闭了,而最重要的是,cookie和session不同的地方在于cookie保存在客户端,所以可以长期保存,session是不可以长期保存的。
2、JSP中的session是保存在服务器中的,客户端是不知道其中信息的;cookie和session不同的地方在于cookie保存在客户端中,服务器是可以够知道其中的信息。
3、JSP中的session中保存的是对象,cookie和session不同的地方在于它保存的是字符串。
4、JSP中的session是不可以区分路径,同一个用户在访问一个网站期间,所有的session在任何一个地方都可以访问到。但cookie和session不同的地方在于它如果设置了路径参数困陆,那么同一个网站中不同路径下的cookie互相是访问不到的。
扩展资料:
cookie失效:如果你使给当前cookie设置了时间,那么它被保存到硬盘上,一直会到你的时间结束。没有设置时间,则保存在内存上,生理周期在会话期间。
session失效:(生命周期):会话期间(浏览器开始访问服务器,到浏览器关闭)。设置的时间,是你与服务器的链接不刷新时间就过期,你一直刷新,那么一直不会失效。
JSP中的九大内置对象 page,requestsession,application,pagecontext,response,config,out,exception。
JSP中三大组件: servlet filterlistener
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)