JSP脚本语言-ch05ppt课件_第1页
JSP脚本语言-ch05ppt课件_第2页
JSP脚本语言-ch05ppt课件_第3页
JSP脚本语言-ch05ppt课件_第4页
JSP脚本语言-ch05ppt课件_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

1、Chapter 5JSP中的内建对象内建对象概述内建对象概述requset对象对象session对象对象application对象对象page对象对象使用使用JSP中的内建对象中的内建对象用户注册系统用户注册系统out 对象对象response 对象对象PageContext 对象对象config 对象对象exception对象对象内建对象概述内建对象概述JSP属性属性page范围范围request范围范围session范围范围application范围范围内建对象概述内建对象概述JSP提供了一些由容器实现和管理的内建对象,提供了一些由容器实现和管理的内建对象,在在JSP页面中可以直接使用,不

2、需要实例化,页面中可以直接使用,不需要实例化,通过存取这些内建对象实现与通过存取这些内建对象实现与JSP页面的页面的Servlet环境的互相访问。环境的互相访问。JSP一共提供了一共提供了9个内建对象:个内建对象:out、request、reponse、session、 pageContext、 application、 config、page、exception。由于由于JSP是构建在是构建在Servlet上的,从本质上讲,上的,从本质上讲, JSP的每个内建对象都与的每个内建对象都与Java Servlet API包中包中的类相对应,在服务器运行时自动生成。的类相对应,在服务器运行时自动生

3、成。例如:查看例如:查看“work目录中的目录中的servlet.java。需要注意的问题是对象名的写法,包括这些对象方法的调需要注意的问题是对象名的写法,包括这些对象方法的调用时也要书写正确,因为用时也要书写正确,因为Java语言本身是大小写敏感的。语言本身是大小写敏感的。JSP技术提供给开发人员一项传递数据的机制,那就是利技术提供给开发人员一项传递数据的机制,那就是利用用setAttribute( )和和getAttribute( )方法。方法。例如:例如:page1.jsp、page2.jsp有时会将有时会将request、session、application 和和pageContex

4、t 归归为一类,原因在于它们都能借助为一类,原因在于它们都能借助setAttribute( )和和getAttribute( )来设定和取得其属性来设定和取得其属性(Attribute)。四个内建对象之间最大的差别在于范围四个内建对象之间最大的差别在于范围(Scope)不一样不一样JSP 有四种范围,分别为有四种范围,分别为Page、Request、Session、Application。Page范围范围所谓的所谓的Page,指的是单单一页,指的是单单一页JSP Page的范围。的范围。若要将数据存入若要将数据存入Page 范围时,可以用范围时,可以用pageContext 对象的对象的set

5、Attribute( )方法;若要方法;若要取得取得Page范围的数据时,可以用范围的数据时,可以用pageContext对对象的象的getAttribute( )方法。方法。例如:例如:pagescope1、pagescope2。PageScope2.jsp根本无法取得根本无法取得PageScope1.jsp设设定的定的Name和和Password值,因为在值,因为在PageScope1.jsp当中,是把当中,是把Name 和和Password 的的属性范围设为属性范围设为Page,所以,所以Name和和Password值只值只能在能在PageScope1.jsp当中取得。当中取得。例如:例

6、如:pagescope3。若数据设为若数据设为Page范围时,数据只能在同一个范围时,数据只能在同一个JSP网页上取得,其他网页上取得,其他JSP网页却无法取得该数网页却无法取得该数据。据。Request范围范围Request 的范围是指在一的范围是指在一JSP 网页发出请求到网页发出请求到另一个另一个JSP 网页之间,随后这个属性就失效。网页之间,随后这个属性就失效。设定设定Request 的范围时可利用的范围时可利用request 对象中的对象中的setAttribute( )和和getAttribute( )。例如:例如:RequestScope1.jsp、 RequestScope2.

7、jsp。除了利用转向除了利用转向(forward)的方法可以存取的方法可以存取request 对象的数据之外,还能使用包含对象的数据之外,还能使用包含(include)的方的方法。法。Session、Application范围范围pageContext、request、session和和application可以使用可以使用的储存和取得属性的方法。的储存和取得属性的方法。到目前已大约介绍完到目前已大约介绍完JSP 中四种范围中四种范围(Scope):Page、Request、Session 和和Application。要设置数据范围时,则只需要:要设置数据范围时,则只需要:pageContex

8、t.setAttribute(Year, new Integer(2019);request.setAttribute(Month, new Integer(12) );session.setAttribute(Day, new Integer(27) );application.setAttribute(Times, new Integer(10);使用使用getAttribute(String name,Object value)取得取得name 属性的值时,会回传一个属性的值时,会回传一个java.lang.Object,因此还必,因此还必须根据须根据name 属性值的类型做转换类型的工

9、作。属性值的类型做转换类型的工作。例如:例如:若要取得若要取得String 类型的类型的Name 属性时:属性时:String Name = (String)pageContext.getAttribute(Name);若是若是Integer 类型的类型的Year 属性时:属性时:Integer Year = (Integer)request.getAttribute(Year);out对象对象request对象对象response对象对象out对象:主要作用是在客户端的浏览器内输出对象:主要作用是在客户端的浏览器内输出数据结果信息,被封装为数据结果信息,被封装为javax.servlet.j

10、sp.JspWriter接口,可以通过接口,可以通过out对象对缓冲区进行操作。对象对缓冲区进行操作。通过调用通过调用pageContext.getOut()方法可以获取方法可以获取out对象。对象。out对象常用方法如下:对象常用方法如下:public abstract void print()显示各种数据类型的内容。显示各种数据类型的内容。public abstract void println()分行显示各种数据类型的内容。分行显示各种数据类型的内容。public abstract void newLine()输出一个换行字符,换一行。输出一个换行字符,换一行。public abstra

11、ct void close()关闭输出流。关闭输出流。一个参数:一个参数:boolean、char、int、long、float、double、java.lang.String、java.lang.Object,系,系统自动转换为字符串统自动转换为字符串out对象常用方法如下对象常用方法如下(续前页续前页):public abstract void clear ()清除缓冲区中的内容,不将数据发送至客户端。清除缓冲区中的内容,不将数据发送至客户端。public abstract void clearBuffer ()清除缓冲区中的内容,并将数据发送至客户端。清除缓冲区中的内容,并将数据发送至客

12、户端。public int getBufferSize()获取缓冲区的大小。获取缓冲区的大小。public abstract int getRemaining()获取缓冲区剩余空间的大小。获取缓冲区剩余空间的大小。public abstract void flush()输出缓冲区中的数据。输出缓冲区中的数据。public boolean isAutoFlush()获取获取AutoFlush的取值。的取值。JSP程序利用程序利用out对象将网页内容输出时,都要和客户对象将网页内容输出时,都要和客户端做一次连接,并会为此而消耗不少资源;端做一次连接,并会为此而消耗不少资源;因此可以将要输出的内容放

13、在一个固定大小的缓冲区因此可以将要输出的内容放在一个固定大小的缓冲区中,等到缓冲区满时再一次将内容送往客户端,这需中,等到缓冲区满时再一次将内容送往客户端,这需要将要将autoFlush设为设为true,否则缓冲区满时将产生,否则缓冲区满时将产生IOException错误。错误。例如:测试例如:测试autoFlush,setAutoFlushFalse.jsp注意:注意:out.println() 与与等价。等价。request对象:作用是获取通过对象:作用是获取通过HTTP协议连接协议连接到服务器的客户端传递的数据,封装了用户提到服务器的客户端传递的数据,封装了用户提交的信息,通过调用该对象

14、的方法可以获得封交的信息,通过调用该对象的方法可以获得封装的信息,被封装为装的信息,被封装为javax.servlet.HttpServletRequest接口。接口。HttpServletRequest 接口提供的方法可分为四接口提供的方法可分为四大类:大类:管理管理request属性的方法:属性的方法:public java.lang.Object getAttribute ()返回返回name指定的属性值,若指定的属性值,若name不存在返回不存在返回null。public java.util.Enumeration getAttributeNames ()返回返回request对象所有

15、属性的名字集合。对象所有属性的名字集合。public void setAttribute (java.lang.String name, java.lang.Object o)设置该请求中的一个属性。设置该请求中的一个属性。能够取得请求参数的方法:能够取得请求参数的方法:能够取得请求能够取得请求HTTP 标头的方法:标头的方法:其他方法如:取得请求的其他方法如:取得请求的URL、IP 和和session:获取环境参数获取环境参数例如:例如:requestExample.jsp,利用,利用request对象获对象获取运行环境的各种参数。取运行环境的各种参数。request对象的对象的web应用应

16、用例如:例如:showParameter.html、showParameter.jspresponse对象:作用是封装对象:作用是封装JSP 处理数据后产处理数据后产生的结果,并将其传回到客户端响应客户的请生的结果,并将其传回到客户端响应客户的请求,被封装为求,被封装为 javax.servlet.HttpServletResponse接口。接口。response对象用来提供给客户端浏览器的参考对象用来提供给客户端浏览器的参考信息,如响应的标头、响应本体信息,如响应的标头、响应本体HTML文本文本内容及服务器端的状态码信息。内容及服务器端的状态码信息。注意:任何标头的设定都应在响应本体传回前注

17、意:任何标头的设定都应在响应本体传回前设定好,否则设定的值将不起作用。设定好,否则设定的值将不起作用。例如:常用例如:常用response.setContentType(“ContentType String”)设定响应的设定响应的MIME类型与编码方式。类型与编码方式。response.setContentType(“text/html; charset=Big5”)HttpServletResponse 接口提供的方法可分为三大类:接口提供的方法可分为三大类:设定设定HTTP标头的方法:标头的方法:HttpServletResponse 接口提供的方法可分为三大类:接口提供的方法可分为三大

18、类:设定响应状态码的方法:设定响应状态码的方法:用来用来URL 重写重写(rewriting)的方法:的方法:例如:例如:response.jspsession对象对象application对象对象PageContext对象对象HTTP是一种无连接的协议。是一种无连接的协议。cookie的常见用途:的常见用途:记录用户历史访问信息记录用户历史访问信息Cookie使站点跟踪特定访问者的访问次数、最后访问使站点跟踪特定访问者的访问次数、最后访问时间和访问者进入站点的路径;时间和访问者进入站点的路径;Cookie告诉在线广告商广告被点击的次数,从而可以告诉在线广告商广告被点击的次数,从而可以更精确的

19、投放广告;更精确的投放广告;Cookie能帮助站点统计用户个人资料以实现各种各样能帮助站点统计用户个人资料以实现各种各样的个性化服务;的个性化服务;自动登录自动登录Cookie有效期限未到时,能使用户在不键入密码和用有效期限未到时,能使用户在不键入密码和用户名的情况下进入曾经浏览过的一些站点。户名的情况下进入曾经浏览过的一些站点。cookie:是一个小的、已命名的数据元素,服务器使:是一个小的、已命名的数据元素,服务器使用用Set-Cookie头标将之作为头标将之作为HTTP数据包的一部分传送数据包的一部分传送到客户端,实质是一段纯文本信息,保存在客户端指到客户端,实质是一段纯文本信息,保存在

20、客户端指定目录,对同一服务器的后续请求使用一个定目录,对同一服务器的后续请求使用一个cookie头头标返回到服务器。标返回到服务器。cookie是与是与Web站点而不是与具体页面相联系的。站点而不是与具体页面相联系的。cookie是有时效性的,有效期时间以秒为单位。是有时效性的,有效期时间以秒为单位。从编程角度看,从编程角度看,JSP中的中的cookie是是Java提供的一个类提供的一个类创建创建cookie:cookie中带有两个字符串参数代表中带有两个字符串参数代表cookie的名称和值的名称和值Cookie demoCookie = new Cookie(“CookieName”,“Co

21、okieValue”)设置设置cookie属性属性设置设置cookie属性属性设置设置cookie的有效期:的有效期:Cookie 变量名变量名.setMaxAge(有效周期有效周期);例如:例如:String sessionID=makeUniqueString();HashMap sessionInfo=new HashMap();HashMap globaTable=findTableStoringSessions();globeTable.put(sessionID, sessionInfo);Cookie sessionCookie = new Cookie(“JSESSION”,

22、sessionID);cookie setMaxAge(30*60);/存活时间存活时间30分钟分钟response.addCookie(cookie); /写入客户硬写入客户硬盘盘会话信息记录在会话信息记录在HashMap中,保存在服务器端,并用中,保存在服务器端,并用sessionID标识,标识,sessionID保存在客户端的保存在客户端的Cookie中。中。例如:例如:writeCookie.jsp、readCookie.jsp 实现会话的四种方式实现会话的四种方式使用持续使用持续Cookie。重写包含额外参数的重写包含额外参数的URL:利用:利用GET方法在方法在URL尾部尾部添加一

23、些额外的参数来达到会话追踪的目的。添加一些额外的参数来达到会话追踪的目的。host/path/file.html;jsessionid=1234,建立含有数据的隐藏表单字段。建立含有数据的隐藏表单字段。使用内建使用内建session对象对象JSP引擎产生一个引擎产生一个session对象,同时分配一个对象,同时分配一个String类类型的型的ID号,号,JSP引擎同时将这个引擎同时将这个ID号发送到客户端,存号发送到客户端,存放在放在cookie中,使中,使session对象和客户间建立了一一对应对象和客户间建立了一一对应的关系。的关系。session和和cookie有以下区别:有以下区别:从

24、存放的地点看:从存放的地点看:cookie存放在客户端的硬盘存放在客户端的硬盘里;里;session保存在服务器端的内存里。保存在服务器端的内存里。从存活的时间看:从存活的时间看:cookie可以长期保存在客户可以长期保存在客户端,数据失效期限由端,数据失效期限由expires属性指定;属性指定;session随用户登陆网站而临时生成,随用户的下线或随用户登陆网站而临时生成,随用户的下线或超时而消失。超时而消失。从安全性来看:从安全性来看:cookie保存在客户端,安全性保存在客户端,安全性较差;较差;session存放在服务器,用户不能修改,存放在服务器,用户不能修改,且浏览器关闭后失效,安

25、全性好,但服务器反且浏览器关闭后失效,安全性好,但服务器反复读写磁盘文件,性能有影响。复读写磁盘文件,性能有影响。从实现方式看:从实现方式看:cookie在后继访问中将信息返在后继访问中将信息返回给服务器;回给服务器;session是一个动作状态的持续,是一个动作状态的持续,是一个会话。是一个会话。session对象:作用是记录每个客户端的访问状对象:作用是记录每个客户端的访问状态以便跟踪每个客户端的操作状态,被封装为态以便跟踪每个客户端的操作状态,被封装为 javax.servlet.HttpSession接口,可以通过接口,可以通过pageContext.getSession()方法获取一

26、个方法获取一个session对对象。象。在在JavaBean和和Servlet中使用中使用session需要从需要从request对象中获得:对象中获得:HttpSession session=request.getSession();客户首次访问服务器上的一个客户首次访问服务器上的一个JSP页面时,页面时,JSP引擎产生一个引擎产生一个session对象,同时分配一个对象,同时分配一个String型的型的ID号并发送到客户端写入号并发送到客户端写入cookie,使客户,使客户与服务器建立一一对应的关系。与服务器建立一一对应的关系。客户继续访问网站上的其它页面时,不再分配客户继续访问网站上的其

27、它页面时,不再分配给客户新的给客户新的session对象,直到客户端浏览器关对象,直到客户端浏览器关闭,该闭,该session对象消失,客户与服务器的会话对象消失,客户与服务器的会话结束。结束。当客户重新打开浏览器访问网站时创建新的当客户重新打开浏览器访问网站时创建新的session。javax.servlet.HttpSession提供的方法如下:提供的方法如下:public java.lang.Object getAttribute (java.lang.String name)获取指定的获取指定的name参数值。参数值。public java.util.Enumeration getAt

28、tributeNames ()获取获取session的所有参数名。的所有参数名。public void setAttribute(java.lang.String name, java.lang.Object value)设置指定设置指定name的的session属性。属性。public void removeAttribute(java.lang.String name)删除指定的删除指定的session属性。属性。例如:例如:sessionLife.jsp例如:例如:sessionE1.jsp、sessionE2.jsp、sessionE3.jspapplication对象:负责提供应用程

29、序在服务器对象:负责提供应用程序在服务器中运行时的一些全局信息,直到服务器关闭为中运行时的一些全局信息,直到服务器关闭为止,被封装为止,被封装为 javax.servlet.ServletContext接口。接口。javax.servlet.ServletContext类提供了三类方法:类提供了三类方法:接口容器相关信息的方法:接口容器相关信息的方法:javax.servlet.ServletContext类提供了三类方法:类提供了三类方法:有关服务端的路径和文件的方法:有关服务端的路径和文件的方法:javax.servlet.ServletContext类提供了三类方法:类提供了三类方法:有

30、关信息记录的方法:有关信息记录的方法:例如:例如:application.jspPageContent对象:一般用于设置、获取当前对象:一般用于设置、获取当前JSP页面的一些属性,也能够存取页面的其他页面的一些属性,也能够存取页面的其他隐含对象隐含对象(out、request、response、session、application等等) 及其所支持的属性,被封装为及其所支持的属性,被封装为 javax.servlet.jsp.PageContext接口。接口。javax.servlet.jsp.PageContext类提供了两类方类提供了两类方法:法:用于取得属性的方法:用于取得属性的方法:

31、不过在使用下列方法时,需要指定范围的参数:不过在使用下列方法时,需要指定范围的参数:javax.servlet.jsp.PageContext 类所提供范围参数有四类所提供范围参数有四个常数,分别代表四种范围:个常数,分别代表四种范围:用于取得其它隐含对象的方法:用于取得其它隐含对象的方法:config对象对象page对象对象exception对象对象config对象:主要作用是取得服务器的配置信对象:主要作用是取得服务器的配置信息,被封装为息,被封装为 javax. servlet.servletConfig接口,接口,通过通过pageContext.getServletConfig()方法可以获方法可以获取一个取一个config对象,提供存取对象,提供存取servlet类初始化参类初始化参数以及有关服务器环境信息的数以及有关服务器环境信息的ServletContext对对象。象。config对象的常用方法:对象的常用方法: public java.lang.String getInitParatemer (java.lang.String name)获取服务器指定获取服务器指定name参数的初始值。参数的初始值。 public java.util.Enumeration getInitParameterNames()获

温馨提示

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

评论

0/150

提交评论