第5章 Web应用对象的存储管理_第1页
第5章 Web应用对象的存储管理_第2页
第5章 Web应用对象的存储管理_第3页
第5章 Web应用对象的存储管理_第4页
第5章 Web应用对象的存储管理_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Servlet/JSP第五章第五章 Web应用对象的存储管理 Copyright2008 版权所有 邯郸学院 HanDan College本章要点vWeb应用对象存储基础应用对象存储基础 v使用使用Cookie v使用使用HttpServletRequest v使用使用HttpSession v使用使用ServletContext v简单购物车程序实现简单购物车程序实现 v几种几种Web应用存储机制的比较应用存储机制的比较 Copyright2008 版权所有 邯郸学院 HanDan CollegeWeb应用对象存储的种类 v在在Web应用中,不同的应用中,不同的Web组件之间传递数据组件之间

2、传递数据信息可以采用不同的对象类型,主要有以下几种:信息可以采用不同的对象类型,主要有以下几种: Cookies对象,可以用来通过浏览器在客户端存储相关用户信息。 HttpServletRequest存储与传递对象信息,我们知道HttpServletRequest对象是用来封装客户端提交数据信息的,是由服务器创建的。而它的另一个功能则是可以在一个请求的处理过程中,在不同的Web组件之间传递对象信息。 HttpSession技术,一般称为Servlet会话技术,用来维持客户端用户的状态信息。 ServletContext对象可以用来存储整个Web应用的相关信息,对于全局共享的数据可以存放其中。C

3、opyright2008 版权所有 邯郸学院 HanDan College使用使用Cookie vCookie是是Web服务器发送到浏览器,并且存储服务器发送到浏览器,并且存储在浏览器中的一些文本信息在浏览器中的一些文本信息 v在浏览器发送一个请求到在浏览器发送一个请求到Web服务器时,会将服务器时,会将这些文本信息重新原封不动地返回这些文本信息重新原封不动地返回 v有时有时Cookie被用于在用户不知情的情况下收集被用于在用户不知情的情况下收集用户的信息,造成一些保密信息的泄露。用户的信息,造成一些保密信息的泄露。 v用户可能会在浏览器上关闭用户可能会在浏览器上关闭Cookie功能,这样功能

4、,这样就会使浏览器不能识别就会使浏览器不能识别Cookie。Copyright2008 版权所有 邯郸学院 HanDan College创建Cookie vJava Servlet API包中包含一个类包中包含一个类javax.servlet.http.Cookie,通过此类可以,通过此类可以创建一个创建一个Cookie对象,对象,Cookie的构造器为:的构造器为:v通过通过Cookie类声明的以下方法可以获取类声明的以下方法可以获取Cookie的名字和值:的名字和值:v可以调用可以调用setValue()方法修改方法修改Cookie的值的值 public Cookie (String na

5、me,String value);public String getName() public String getValue() public void setValue(String newValue) Copyright2008 版权所有 邯郸学院 HanDan College创建Cookie(续)v当创建好当创建好Cookie对象以后,可利用对象以后,可利用httpServletResponse的的addCookie()方方法,将法,将Cookie插入到插入到http响应头中,例如:响应头中,例如:Cookie cookie=new Cookie(“userName”,”fangjp”

6、);response.addCookie(cookie);Copyright2008 版权所有 邯郸学院 HanDan CollegeCookie相关方法使用 vCookie可以设置一个过期的时间,超过过期时可以设置一个过期的时间,超过过期时间浏览器就会删除该间浏览器就会删除该Cookie,我们可通过,我们可通过getMaxAge()和和setMaxAge()来获得和设来获得和设置置Cookie的过期时间的过期时间 public int getMaxAge()public void setMaxAge(int maxAge)Copyright2008 版权所有 邯郸学院 HanDan Coll

7、egeCookie示例 v建立一个建立一个Servlet来设置和显示来设置和显示Cookie信息。信息。见例见例51Copyright2008 版权所有 邯郸学院 HanDan College使用HttpServletRequest vHttpServletRequest是由是由Web服务器创建,服务器创建,并传递给并传递给Servlet使用的,它封装了客户端提交使用的,它封装了客户端提交的数据。的数据。v除了以上功能,除了以上功能, HttpServletRequest对象可对象可以作为一个领域,在不同的以作为一个领域,在不同的Servlet或或JSP间传间传递数据。递数据。Copyrigh

8、t2008 版权所有 邯郸学院 HanDan CollegeHttpServletRequest接口方法介绍 public void setAttribute(String name,Object value)public Object getAttribute(String name)public void removeAttribute(String name)public java.util.Enumeration getAttributeNames() Copyright2008 版权所有 邯郸学院 HanDan CollegeHttpServletRequest领域例子v见例见例52

9、Copyright2008 版权所有 邯郸学院 HanDan College使用HttpSessionvHttpSession可以保存客户状态信息。可以保存客户状态信息。Copyright2008 版权所有 邯郸学院 HanDan CollegeURL重写技术v如果客户端禁用如果客户端禁用Cookie,那么将使用,那么将使用URL重写重写来记录来记录Session ID。v实现实现URL重写技术的方法如下:重写技术的方法如下:public String encodedURL(String url)public String encodedRedirectURL(String url)Copyr

10、ight2008 版权所有 邯郸学院 HanDan CollegeHttpSession对象的创建v我们可以使用我们可以使用 HttpServletRequest 接口的接口的下列方法获得下列方法获得Session对象:对象:v另外,我们可以通过另外,我们可以通过HttpSession中定义的下中定义的下列方法判断,当前会话是否是新创建的列方法判断,当前会话是否是新创建的 。HttpSession getSession(boolean create)HttpSession getSession()public boolean isNew() Copyright2008 版权所有 邯郸学院 Ha

11、nDan CollegeHttpSession接口方法介绍v getAttributeNames()方法返回一个会话中所有的关方法返回一个会话中所有的关键字名字的集合,方法声明为:键字名字的集合,方法声明为:v removeAttribute()方法从会话删除指定存储关键字方法从会话删除指定存储关键字名的对象,方法声明为:名的对象,方法声明为:v 当一个客户第一次访问服务器时,当一个客户第一次访问服务器时,Web服务器会生成一服务器会生成一个会话。个会话。getCreationTime()方法返回生成该会话的方法返回生成该会话的时间(从时间(从1970年年1月月1日午夜日午夜GMT开始算起的毫

12、秒数)。开始算起的毫秒数)。public object getAttribute(String name)public java.util.Enumeration getAttributeNames()public void removeAttribute(String name)public long getCreationTime()Copyright2008 版权所有 邯郸学院 HanDan CollegeHttpSession接口方法介绍v getId()方法返回分配给这个会话的唯一标识符。这个方法返回分配给这个会话的唯一标识符。这个唯一标识符就是和特定客户端关联的唯一标识符就是和特定

13、客户端关联的session id。Web服务器保证生成不同客户端服务器保证生成不同客户端id的唯一性,这些的唯一性,这些id值值将会在客户端请求中传递给将会在客户端请求中传递给Web服务器,用以服务器,用以Web服服务器区分不同的客户端,方法声明为:务器区分不同的客户端,方法声明为:v getLastAccessedTime()方法返回客户上一次发送方法返回客户上一次发送与这个会话关联的一个请求的时间。这个时间用距离与这个会话关联的一个请求的时间。这个时间用距离1970年年1月月1日午夜的毫秒数表示,方法声明为:日午夜的毫秒数表示,方法声明为:public String getId()publ

14、ic long getLastAccessedTime()Copyright2008 版权所有 邯郸学院 HanDan CollegeHttpSession接口方法介绍vgetServletContext()方法返回与此会话所属方法返回与此会话所属的应用程序关联的的应用程序关联的ServletContext对象,方对象,方法声明为:法声明为: vinvalidate()方法可以使这个会话失效,并且方法可以使这个会话失效,并且删除绑定在其上的所有数据信息:删除绑定在其上的所有数据信息:public ServletContext gerServletContext()public void inv

15、alidate()Copyright2008 版权所有 邯郸学院 HanDan CollegeHttpSession的销毁 v会话过期会话过期v客户端关闭浏览器客户端关闭浏览器v调用方法调用方法invalidate()Copyright2008 版权所有 邯郸学院 HanDan College会话过期v 每一个会话都有一个存活的期限,如果超过期限的时间,服每一个会话都有一个存活的期限,如果超过期限的时间,服务器将会销毁此前所创建的务器将会销毁此前所创建的session对象,我们称此为对象,我们称此为session过期过期 。v 可以在可以在web.xml中配置其过期时间,如下所示:中配置其过期

16、时间,如下所示:v 在应用程序中,也可以通过在应用程序中,也可以通过HttpSession中的方法设定时中的方法设定时间:间: 20public void setMaxInactiveInterval(int time)public int getMaxInactiveInterval()Copyright2008 版权所有 邯郸学院 HanDan College客户端关闭浏览器v我们知道我们知道session是通过客户端的是通过客户端的cookie与客与客户端关联的,而此户端关联的,而此cookie的生命周期仅是浏览的生命周期仅是浏览器打开的期间,所以一旦浏览器关闭,服务器端器打开的期间,所

17、以一旦浏览器关闭,服务器端的的session将失去与客户端的关联,所以等到超将失去与客户端的关联,所以等到超时以后将会被垃圾回收机制销毁。时以后将会被垃圾回收机制销毁。 Copyright2008 版权所有 邯郸学院 HanDan College调用方法invalidate()v调用调用HttpSession中的中的invalidate()方法,方法,可以清除可以清除session中所有的数据信息,并且销毁中所有的数据信息,并且销毁session对象。此方法声明为:对象。此方法声明为:public void invalidate()Copyright2008 版权所有 邯郸学院 HanDan

18、College使用ServletContext v在一个在一个Web服务器中,每个服务器中,每个Web应用程序都与应用程序都与一个上下文(一个上下文(context)环境关联,且不同的)环境关联,且不同的Web应用之间是彼此独立的应用之间是彼此独立的 v每个部署在服务器中的每个部署在服务器中的Web应用,服务器都会应用,服务器都会为此应用创建一个独立的为此应用创建一个独立的ServletContext对对象,在同一个象,在同一个Web应用下的所有的应用下的所有的Web资源都资源都可以共享使用存储在可以共享使用存储在ServletContext对象中对象中的数据的数据 vServletConte

19、xt对象对于一个对象对于一个Web应用来说应用来说是唯一的是唯一的 Copyright2008 版权所有 邯郸学院 HanDan CollegeServletContext接口方法介绍 public Object getAttribute(String name)public void setAttribute (String name,Object attr)public void removeAttribute (String name)public java.util.Enumeration getArributeNames()Copyright2008 版权所有 邯郸学院 HanDan College简单购物车程序实现 v使用以上学习的不同领域,完成一个购物车实现。使用以上学习的不同领域,完成一个购物车实现。v见例见例Copyright2008 版权所有 邯郸学院 HanDan College几种Web应用存储机制的比较 v Cookie只能存储少量的数据,且是存储在客户端的文本信息,受客只能存储少量的数据,且是存储在客户端的文本信息,受客户端限制户端限制 v HttpServletReques

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论