jsp 页面怎么读取jsp servlett中的cookie

servlet中cookies的使用,JSP教程,JSP案例,JSP实例
     本站短域名:珠江路.cn、zjlu.net
        
     
          
您的位置: &&
&& servlet中cookies的使用
servlet中cookies的使用
I中的javax.servlet.http包下,Servlet可以用new Cookie(name,value)向送出一个或多个cookies;用cookies.setXxx()来某个特定cookies的;通过response.addCookies(cookies)将cookies添加到response的标题中去;用.Cookies()读取cookies对象。大多数情况下,可以用访问该数组,找出与想访问的cookies名相同的cookies(用getName),再用该cookies的getValue得到值。
一、创建cookies
  用cookies的,cookies(String name,String value),需要注意的是名不能含有空格及下列字符:[ ] ,( ) = " / ? @ : ;
二、 读取cookies和设定cookies属性
  在将cookies加入到输出标题之前,可以取得并且设定cookies的属性,具体函数如下:
getComment/setComment
得到/设置 cookie的注释
getDomain/setDomain
得到/设置 cookies的域名。通常cookies只会返回到发送该cookies的主机上。用该方法可以通知将cookies返回到指定的在同一域的其他主机上。
getMaxAge/setMaxAge
得到/设置cookie有效时间期间,默认为此次,及直到关闭该,cookies不会存放在上。
getName/setName
得到/设置cookie名。 名称与值是者最为关心的,用ServletRequest 得到Cookie 对象数组,通常就循环调用getName,直到得到想要得到的cookies,再用getValue得到其中的值
getPath/setPath
得到/设置cookies应用的目录。如果不指定与该cookie 将适用于与当前页面在同一目录以及该目录下的所有子目录的。
getSecure/setSecure
得到/设置 是否cookies应该按照加密传送
getValue/setValue
得到/设置cookie的值
getVersion/setVersion
得到/设置cookie 的版本号,默认为0。
将cookies放入
三Cookies的使用
  1、创建Cookies后,用addCookie向客户发送Cookies.
  2、可以在HttpServletRequest中用getCookies读取Cookies。用HttpServletRequest 得到Cookie 对象数组,通常就循环调用getName,直到得到想要得到的cookies,再用getValue得到其中的值.
数据库开发
产品库推荐
All Rights Reserved.
珠江路在线版权所有
 |  |  | jsp/servlet&session
一,会话跟踪(session
tracking)技术&会话是客户端发送请求,服务器返回响应的连接时间段。
&HTTP是无状态协议:每次都是单独连接,不能维持客户的上下文信息。
&会话跟踪技术是用于维持客户端和服务器端通信信息的技术。
&三种典型客户端会话跟踪解决方案:
&&1,Cookie;
&&2,URL重写;
&&3,隐藏表单域;
二,会话Cookie&用于会话跟踪的Cookie叫做会话Cookie。Servlet规范中会话跟踪的cookie名字必须是JSESSIONID,保存在浏览器的内存中。区别于保存在外部存储设备的cookie。&
&对于存储在内存中的cookie,是不能被不同的浏览器进程共享,共享只能发生在同一个浏览器进程的不同窗口(对个窗口共享一个进程)中。对于存储在外部设备的cookie,可以多浏览器共享。
三,url重写&在浏览器不支持或禁用cookie的情况下,使用url重写代替cookie来跟踪用户会话。
&每个页面都必须使用servlet或jsp动态生成(动态页面)。因为附加在URL上的sessionID是动态产生,所以对于静态页面的跳转,URL重写机制无能为力。
&即使使用动态页面,如果用户离开了会话并且通过书签或链接再次回来,会话信息也会丢失,因为存储下来的链接含有错误的标识信息。
须将所有发送到客户端的url进行编码,调用HttpServletResponse接口中的encodeURL()方法和
encodeRedirectURL()方法来实现。在调用sendRedirect()方法之前使用encodeRedirectURL()方法.
四,隐藏表单域
&只能用于特定操作中。仅当每个页面都由表单提交而动态生成的时候,才可以使用隐藏表单域,用来存储相关会话信息。
五,servlet中的会话跟踪&javax.servlet.http.HttpSession接口是servlet提供会话跟踪解决方案。
&HttpSession对象存放在服务器端,只是对cookie和url重写技术的封装应用,所以要求服务器支持cookie,可以全局切换到url重写。
&1,访问与当前请求相关联的会话对象:getSession(boolean
value)方法
&&在会话过程中,web容器负责为客户端维护一个唯一的HttpSession对象。
&&对于新会话,web容器创建使用实现了HttpSession接口的HttpSession对象封装当前请求会话的信息(散列表的方式存储)。
&&使用HttpServletRequest的getSession()方法访问HttpSession对象。
&&&在后台,系统从cookie或URL重写附加的数据中提取出用户ID。以ID为key,遍历之前创建的HttpSession对象内建的散列表。
&&&如果找不到匹配的会话ID,系统重新创建一个新的会话。默认情况下(不禁用Cookie)还会创建一个名为JSESSIONID,值为唯一标识用户表示会话ID的输出cookie。&&
&&因为调用getSession()方法会影响到后面的响应,所以只能在发送任何文档内容到客户端之前调用getSession()方法。
&&区别:getSession(boolean
value)方法:如果系统没有找到与请求关联的会话ID,true表示返回新会话。false表示方法返回null。
&2,访问和设置与会话相关联信息,维护会话的状态:HttpSession的getAttribute()方法和setAttribute()方法
&&散列表:HttpSession对象内建数据结构,用于存储
当前请求会话的数据(会话的属性)。可以存储任意数量的key-value对。
&&使用HttpSession的getAttribute()方法和setAttribute(String
key,Object value)方法读取和设置当前请求会话数据(即对散列表的操作),维护会话的状态。
&&setAttribute方法会替换任何之前的属性。如果不想被替换,则需要在设置之前使用removeArrtibute(String
key)方法移除该属性。
&&setAttribute方法会触发所有实现了HttpSessionBindingListener接口的valueBound方法,做一些初始化状态的操作。
&&removeArrtibute方法会触发所有实现了HttpSessionBindingListener接口的valueUnbound方法,做一些消除状态的操作。
&&对于分布式WEB应用程序,将web应用程序标记为可分布式执行,系统需要能够将会话对象在机器之间传递,这时需要将会话的属性实现Serializable接口。
&3,废弃会话数据
&&只移除自己编写的的servlet创建的数据:removeArrtibute(String
&&(web应用程序中删除)删除整个会话:invalidate()方法,可以用该方法注销用户。
&&(Web服务器中删除)将用户从系统中注销并且删除所有与该会话关联的会话:logout()方法。一定要与其他web应用程序协调loggout命令的使用。
&4,会话超时时间间隔
&&getMaxInactiveInterval()方法和setMaxInactiveInterval()方法读取和设置在没有访问的情况下,会话保存的最长时间。秒为单位。负数表示会话从不超时。超时由服务器来维护。
&5,会话最后次被客户端访问的时间:getLastAccessedTime()方法
&&可以用来确定客户端在二次请求之间会话的非活动时间。
&6,获取会话被创建的时间:getCreationTime()方法
返回long类型数据
&7,返回分配给session的唯一标识ID,为字符串。getId()方法
六,浏览器会话与服务器会话&浏览器会话
&&默认情况下,会话跟踪基于存储在浏览器内存中的cookie,区别于存储在外围存储设备上的cookie。
&&需要servlet显示的读取JSESSION
cookie,设置最大时效和路径并添加到客户端,否则退出浏览器就会中断会话。
&服务器会话
&&服务器需要将会话保存在内存中,在会话处于非活动状态超过设定的间隔(会话超时)就移除会话。
七,对绑定到session中的对象(属性)初始化和消除状态。HttpSessionBindingListener监听器接口和HttpSessionBindingEvent事件类。
&Servlet容器通过实现HttpSessionBindingListener监听器接口的监听器来监听HttpSessionBindingEvent事件。
&HttpSessionBindingListener监听器接口方法:
&1,valueBound(HttpSessionBindingEvent
event):对象被绑定到session中时该方法通知对象。做初始化操作。
&2,valueUnbound(HttpSessionBindingEvent event):
对象被移除出session时该方法通知对象。做消除状态操作。
&HttpSessionBindingEvent事件方法:
&1,getName():获取触发事件的属性的名字。
&2,getValue():获取触发事件的属性的值。
&3,getSession():返回Session对象。
八,在 Java Servlet API中有关的监听器接口。
&与Session相关的监听器接口
&javax.servlet.http.HttpSessionActivationListener:如果绑定到Session中,当Session被钝化或激活时,Servlet容器将通知该对象。
&javax.servlet.http.HttpSessionAttributeListener:如果想要在Session中的属性列表发生改变时得到通知,可以实现这个接口。
&javax.servlet.http.HttpSessionListener:如果需要在Session创建后或者Session无效前得到通知,可以实现这个接口,实现该接口的类必须在web应用程序的部署描述符中进行配置。
&与Servlet上下文有关的监听器接口:
&javax.servlet.ServletContextAttributeListener:在Servlet上下文中的属性列表发生改变时得到通知,可以实现这个接口,实现该接口的类必须在web应用程序的部署描述符中进行配置。
&javax.servlet.ServletContextListener:如果需要在Servlet上下文对象初始化时或被销毁的时候得到通知,可以实现这个接口,实现该接口的类必须在web应用程序的部署描述符中进行配置。
&与请求相关的监听器接口:servlet2.4规范定义
&javax.servlet.ServletRequestAttributeListener:Servlet请求对象中的属性发生改变时得到通知。
&javax.servlet.ServletRequestListener:请求对象初始化或者被销毁时得到通知。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。JSP 9 大内置对象详解 - 脚本百事通JSP 9 大内置对象详解
内置对象特点:
由规范提供,不用编写者实例化。
通过容器实现和管理
所有页面均可使用
只有在脚本元素的表达式或代码段中才可使用(使用内置对象或使用内置对象)
常用内置对象
输出输入对象:对象、对象、对象
通信控制对象:对象、对象、对象
对象:对象、对象
错误处理对象:对象
对象常用方法说明:
.对象(数据流)
输出换行字符
输出缓冲区数据
关闭输出流
清除缓冲区中数据,但不输出到客户端
清除缓冲区中数据,输出到客户端
获得缓冲区大小
获得缓冲区中没有被占用的空间
是否为自动输出
.对象(请求信息)
判断认证后的用户是否属于某一成员组
获取指定属性的值,如该属性值不存在返回
获取所有属性名的集合
获取所有对象
获取请求的字符编码方式
返回请求正文的长度,如不确定返回
获取指定名字报头值
获取指定名字报头的所有值,一个枚举
获取所有报头的名字,一个枚举
返回请求输入流,获取请求中的数据
获取客户端向端传送数据的方法
获取指定名字参数值
获取所有参数的名字,一个枚举
获取指定名字参数的所有值
获取客户端向端传送数据的协议名称
获取以方法向传送的查询字符串
获取发出请求字符串的客户端地址
获取客户端的地址
获取客户端的名字
获取和请求相关的会话
获取的名字
获取客户端请求文件的路径
获取的端口号
删除请求中的一个属性
设置指定名字参数值
.对象(响应)
添加一个对象
添加文件指定名字头信息
判断指定名字文件头信息是否存在
强制把当前缓冲区内容发送到客户端
返回缓冲区大小
返回到客户端的输出流对象
向客户端发送错误信息
把响应发送到另一个位置进行处理
设置响应的类型
设置指定名字的文件头信息
.对象(会话)
获取指定名字的属性
获取中全部属性名字,一个枚举
返回的创建时间
获取会话标识符
返回最后发送请求的时间
返回对象的生存时间单位千分之一秒
每个请求是否会产生新的对象
删除指定名字的属性
设定指定名字的属性值
.对象(页面上下文)
重定向到另一页面或组件
获取某范围中指定名字的属性值
按范围搜索指定名字的属性
删除某范围中指定名字的属性
设定某范围中指定名字的属性值
返回当前异常对象
返回当前请求对象
返回当前响应对象
返回当前页面的对象
返回所有页面共享的对象
返回当前页面的会话对象
.对象(应用程序)
获取应用对象中指定名字的属性值
获取应用对象中所有属性的名字,一个枚举
返回应用对象中指定名字的初始参数值
返回编译器中当前版本信息
设置应用对象中指定名字的属性值
.对象(的配置信息)
返回所执行的的环境对象
返回所执行的的名字
返回指定名字的初始参数值
返回该中所有的初始参数名,一个枚举
.对象(当前的实例,)
它代表被编译成,可以使用它来调用类中所定义的方法
.对象(运行时的异常,)
被调用的错误页面的结果,只有在错误页面中才可使用,
即在页面指令中设置:“”
Request(Javax.servlet.ServletRequest)它包含了有关浏览器请求的信息.通过该对象可以获得请求中的头信息、Cookie和请求参数。
Response(Javax.servlet.ServletResponse)作为JSP页面处理结果返回给用户的响应存储在该对象中。并提供了设置响应内容、响应头以及重定向的方法(如cookies,头信息等)
Out(Javax.servlet.jsp.JspWriter)用于将内容写入JSP页面实例的输出流中,提供了几个方法使你能用于向浏览器回送输出结果。
pageContext(Javax.servlet.jsp.PageContext)描述了当前JSP页面的运行环境。可以返回JSP页面的其他隐式对象及其属性的访问,另外,它还实现将控制权从当前页面传输至其他页面的方法。
Session(javax.servlet.http.HttpSession)会话对象存储有关此会话的信息,也可以将属性赋给一个会话,每个属性都有名称和值。会话对象主要用于存储和检索属性值。
Application(javax.servle.ServletContext)存储了运行JSP页面的servlet以及在同一应用程序中的任何Web组件的上下文信息。
Page(Java.lang.Object)表示当前JSP页面的servlet实例
Config(javax.servlet.ServletConfig)该对象用于存取servlet实例的初始化参数。
Exception(Javax.lang.Throwable)在某个页面抛出异常时,将转发至JSP错误页面,提供此对象是为了在JSP中处理错误。只有在错误页面中才可使用“”
一.request对象:
该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息,即使用该对象可以获取用户提交信息。
二.response对象:
对客户的请求做出动态的响应,向客户端发送数据。
三.session对象
1.什么是session:session对象是一个JSP内置对象,它在第一个JSP页面被装载时自动创建,完成会话期管理。
从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。当一个客户访问一个服务器时,可能会在这个服务器的几个页面之间反复连接,反复刷新一个页面,服务器应当通过某种办法知道这是同一个客户,这就需要session对象。
2.session对象的ID:当一个客户首次访问服务器上的一个JSP页面时,JSP引擎产生一个session对象,同时分配一个String类型的ID号,JSP引擎同时将这个ID号发送到客户端,存放在Cookie中,这样session对象和客户之间就建立了一一对应的关系。当客户再访问连接该服务器的其他页面时,不再分配给客户新的session对象,直到客户关闭浏览器后,服务器端该客户的session对象才取消,并且和客户的会话对应关系消失。当客户重新打开浏览器再连接到该服务器时,服务器为该客户再创建一个新的session对象。
四.aplication对象
1.什么是application:
服务器启动后就产生了这个application对象,当客户在所访问的网站的各个页面之间浏览时,这个application对象都是同一个,直到服务器关闭。但是与session不同的是,所有客户的application对象都是同一个,即所有客户共享这个内置的application对象。
2.application对象常用方法:
(1)public void setAttribute(String key,Object obj): 将参数Object指定的对象obj添加到application对象中,并为添加的对象指定一个索引关键字。
(2)public Object getAttribute(String key): 获取application对象中含有关键字的对象。
五.out对象
out对象是一个输出流,用来向客户端输出数据。out对象用于各种数据的输出。
六?page java.lang.Object
对应this关键字。JSP网页本身
page对象是当前页面转换后的Servlet类的实例。从转换后的Servlet类的代码中,可以看到这种关系:
Object page =
在JSP页面中,很少使用page对象。
javax.servlet. ServletConfig 的实例,该实例代表该JSP 的配置信息。常用的方法有getInitPararneter(String paramNarne) 及getInitPararneternarnes() 等方法。事实上, JSP 页面通常无须配置,也就不存在配置信息。因此,该对象更多地在Servlet 中有效。
八? exception
java.lang.Throwable 的实例,该实例代表其他页面中的异常和错误。只有当页面是错误处理页面,即编译指令page 的isErrorPage 属性为true 时,该对象才可以使用。常用的方法有getMessageO和printStackTraceO等。
九? pageContext
javax.servlet.jsp.PageContext 的实例,该对象代表该JSP 页面上下文,使用该对象可以访问页面中的共享数据。常用的方法有getServletContextO和getServletConfigO等。
//使用pageContext 设置属性,该属性默认在page 范围内
pageContext. setAttribute (&page& , &hello&) ;
//使用request 设置属性,该属性默认在request 范围内
request. setAttribute (&request& , &hello&);
//使用pageContext将属性设置在request 范围中
pageContext.setAttribute(&request2& , &hello& , pageContext.REQUEST_SCOPE);
// 使用session将属性设置在session 范围中
session.setAttribute(&session& , &hello&l;
//使用pageContext将属性设置在session范围中
pageContext.setAttribute(&session2& , &hello& , pageContext.SESSION_SCOPE);
//使用application将属性设置在application范围中
application. setAttribute (&app& , &hello&) ;
//使用pageContext 将属性设置在application 范围中
pageContext.setAttribute(&app2& , &hello& , pageContext.APPL 工CATION_SCOPE) ;
Jsp内置对象
向客户端输出数据
print() println() flush() clear() isAutoFlush() getBufferSize()&& close() …………
向客户端请求数据
getAttributeNames() getCookies() getParameter() getParameterValues() setAttribute() getServletPath() …………..
封装了jsp产生的响应,然后被发送到客户端以响应客户的请求
addCookie() sendRedirect() setContentType()
flushBuffer() getBufferSize() getOutputStream()
sendError() containsHeader()……………
application
表示Servlet的配置,当一个Servlet初始化时,容器把某些信息通过此对象传递给这个Servlet
getServletContext() getServletName() getInitParameter()&& getInitParameterNames()……………
Jsp实现类的实例,它是jsp本身,通过这个可以对它进行访问
flush()………
pagecontext
为JSP页面包装页面的上下文。管理对属于JSP中特殊可见部分中己经命名对象的该问
forward() getAttribute() getException() getRequest() getResponse()&& getServletConfig()
getSession() getServletContext() setAttribute()
removeAttribute() findAttribute() ……………
用来保存每个用户的信息,以便跟踪每个用户的操作状态
getAttribute() getId()&& getAttributeNames() getCreateTime() getMaxInactiveInterval()
invalidate() isNew()
反映运行的异常
getMessage()…………
作者:zhaoyazhi2129 发表于 13:34:00
阅读:0 评论:0
更多文章:JSP 高级教程
JSP Cookies 处理 Cookies是存储在客户机的文本文件,它们保存了大量轨迹信息。在servlet技术基础上,JSP显然能够提供对HTTP cookies的支持。
通常有三个步骤来识别回头客:
服务器脚本发送一系列cookies至浏览器。比如名字,年龄,ID号码等等。
浏览器在本地机中存储这些信息,以备不时之需。
当下一次浏览器发送任何请求至服务器时,它会同时将这些cookies信息发送给服务器,然后服务器使用这些信息来识别用户或者干些其它事情。
本章节将会传授您如何去设置或重设cookie的方法,还有如何访问它们及如何删除它们。
Cookie剖析 Cookies通常在HTTP信息头中设置(虽然JavaScript能够直接在浏览器中设置cookies)。在JSP中,设置一个cookie需要发送如下的信息头给服务器:
HTTP/1.1 200 OK
Date: Fri, 04 Feb :38 GMT
Server: Apache/1.3.9 (UNIX) PHP/4.0b3
Set-Cookie: name= expires=Friday, 04-Feb-07 22:03:38 GMT;
Connection: close
Content-Type: text/html
正如您所见,Set-Cookie信息头包含一个键值对,一个GMT(格林尼治标准)时间,一个路径,一个域名。键值对会被编码为URL。有效期域是个指令,告诉浏览器在什么时候之后就可以清除这个cookie。
如果浏览器被配置成可存储cookies,那么它将会保存这些信息直到过期。如果用户访问的任何页面匹配了cookie中的路径和域名,那么浏览器将会重新将这个cookie发回给服务器。浏览器端的信息头长得就像下面这样:
GET / HTTP/1.0
Connection: Keep-Alive
User-Agent: Mozilla/4.6 (X11; I; Linux 2.2.6-15apmac ppc)
Host: zink.demon.co.uk:1126
Accept: image/gif, */*
Accept-Encoding: gzip
Accept-Language: en
Accept-Charset: iso-8859-1,*,utf-8
Cookie: name=xyz
JSP脚本通过request对象中的getCookies()方法来访问这些cookies,这个方法会返回一个Cookie对象的数组。
Servlet Cookies 方法 下表列出了Cookie对象中常用的方法:
方法 & 描述
public void setDomain(String pattern) 设置cookie的域名,比如w3cschool.cc
public String getDomain() 获取cookie的域名,比如w3cschool.cc
public void setMaxAge(int expiry) 设置cookie有效期,以秒为单位,默认有效期为当前session的存活时间
public int getMaxAge() 获取cookie有效期,以秒为单位,默认为-1 ,表明cookie会活到浏览器关闭为止
public String getName() 返回 cookie的名称,名称创建后将不能被修改
public void setValue(String newValue) 设置 cookie的值
public String getValue() 获取cookie的值
public void setPath(String uri) 设置cookie 的路径,默认为当前页面目录下的所有URL,还有此目录下的所有子目录
public String getPath() 获取cookie 的路径
public void setSecure(boolean flag) 指明cookie是否要加密传输
public void setComment(String purpose) 设置注释描述 cookie的目的。当浏览器将cookie展现给用户时,注释将会变得非常有用
public String getComment() 返回描述cookie目的的注释,若没有则返回null
使用JSP设置Cookies 使用JSP设置cookie包含三个步骤:
(1)创建一个Cookie对象: 调用Cookie的构造函数,使用一个cookie名称和值做参数,它们都是字符串。
Cookie cookie = new Cookie("key","value");
请务必牢记,名称和值中都不能包含空格或者如下的字符:
[ ] ( ) = , " / ? @ : ;
(2) 设置有效期:调用setMaxAge()函数表明cookie在多长时间(以秒为单位)内有效。下面的操作将有效期设为了24小时。
cookie.setMaxAge(60*60*24);
(3) 将cookie发送至HTTP响应头中:调用response.addCookie()函数来向HTTP响应头中添加cookies。
response.addCookie(cookie);
// 为 first_name 和 last_name设置cookie
Cookie firstName = new Cookie("first_name",
request.getParameter("first_name"));
Cookie lastName = new Cookie("last_name",
request.getParameter("last_name"));
// 设置cookie过期时间为24小时。
firstName.setMaxAge(60*60*24);
lastName.setMaxAge(60*60*24);
// 在响应头部添加cookie
response.addCookie( firstName );
response.addCookie( lastName );
&title&Setting Cookies&/title&
&h1&Setting Cookies&/h1&
&li&&p&&b&First Name:&/b&
&%= request.getParameter("first_name")%&
&li&&p&&b&Last
&%= request.getParameter("last_name")%&
将上面两个文件放在&Tomcat安装目录&/webapps/ROOT目录下,然后访问http://localhost:8080/hello.jsp,将会得到如下输出结果:
试着输入First Name和Last Name,然后点击提交按钮,它将会在您的屏幕中显示first name和last name,并且设置first name和last name两个cookie,下一次点击提交按钮时会发给服务器。
使用JSP读取Cookies 想要读取cookies,您就需要调用request.getCookies()方法来获得一个javax.servlet.http.Cookie对象的数组,然后遍历这个数组,使用getName()方法和getValue()方法来获取每一个cookie的名称和值。 <h3实例演示 让我们来读取上个例子中的cookies。
&title&Reading Cookies&/title&
&h1&Reading Cookies&/h1&
Cookie cookie =
Cookie[] cookies =
// 获取cookies的数据,是一个数组
cookies = request.getCookies();
if( cookies != null ){
out.println("&h2& Found Cookies Name and Value&/h2&");
for (int i = 0; i & cookies. i++){
cookie = cookies[i];
out.print("Name : " + cookie.getName( ) + ",
out.print("Value: " + cookie.getValue( )+" &br/&");
out.println("&h2&No cookies founds&/h2&");
如果您把first name cookie设置成"John",last name设置成"Player",访问 http://localhost:8080/main.jsp,将会得到如下输出结果:
Found Cookies Name and Value
Name : first_name, Value: John
Name : last_name, Value: Player
使用JSP删除Cookies 删除cookies非常简单。如果您想要删除一个cookie,按照下面给的步骤来做就行了:
获取一个已经存在的cookie然后存储在Cookie对象中。
将cookie的有效期设置为0。
将这个cookie重新添加进响应头中。
实例演示 下面的程序删除一个名为"first_name"的cookie,当您下次运行main.jsp时,first_name将会为null。
&title&Reading Cookies&/title&
&h1&Reading Cookies&/h1&
Cookie cookie =
Cookie[] cookies =
// 获取当前域名下的cookies,是一个数组
cookies = request.getCookies();
if( cookies != null ){
out.println("&h2& Found Cookies Name and Value&/h2&");
for (int i = 0; i & cookies. i++){
cookie = cookies[i];
if((cookie.getName( )).compareTo("first_name") == 0 ){
cookie.setMaxAge(0);
response.addCookie(cookie);
out.print("Deleted cookie: " +
cookie.getName( ) + "&br/&");
out.print("Name : " + cookie.getName( ) + ",
out.print("Value: " + cookie.getValue( )+" &br/&");
out.println(
"&h2&No cookies founds&/h2&");
访问它,将会得到如下输出结果:
Cookies Name and Value
Deleted cookie : first_name
Name : first_name, Value: John
Name : last_name, Value: Player
再次访问http://localhost:8080/main.jsp,将会得到如下结果:
Found Cookies Name and Value
Name : last_name, Value: Player
您也可以手动在浏览器中删除cookies。点击Tools菜单项,然后选择Internet Options,点击Delete Cookies,就能删除所有cookies了。
关注微信下载离线手册

我要回帖

更多关于 jsp servlet 的文章

 

随机推荐