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

下载本文档

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

文档简介

1、Chapter 5 JSP中的内建对象,内建对象概述 requset对象 session对象 application对象 page对象 使用JSP中的内建对象用户注册系统,out 对象 response 对象 PageContext 对象 config 对象 exception对象,内建对象概述,JSP属性 page范围 request范围 session范围 application范围,内建对象概述,内建对象概述 JSP提供了一些由容器实现和管理的内建对象,在JSP页面中可以直接使用,不需要实例化,通过存取这些内建对象实现与JSP页面的Servlet环境的互相访问。 JSP一共提供了9个内建

2、对象:out、request、reponse、session、 pageContext、 application、 config、page、exception。 由于JSP是构建在Servlet上的,从本质上讲, JSP的每个内建对象都与Java Servlet API包中的类相对应,在服务器运行时自动生成。 例如:查看“work”目录中的servlet.java。,内建对象概述,需要注意的问题是对象名的写法,包括这些对象方法的调用时也要书写正确,因为Java语言本身是大小写敏感的。 JSP技术提供给开发人员一项传递数据的机制,那就是利用setAttribute( )和getAttribute

3、( )方法。 例如:page1.jsp、page2.jsp 有时会将request、session、application 和pageContext 归为一类,原因在于它们都能借助setAttribute( )和getAttribute( )来设定和取得其属性(Attribute)。 四个内建对象之间最大的差别在于范围(Scope)不一样 JSP 有四种范围,分别为Page、Request、Session、Application。,内建对象概述,Page范围 所谓的Page,指的是单单一页JSP Page的范围。 若要将数据存入Page 范围时,可以用pageContext 对象的setAtt

4、ribute( )方法;若要取得Page范围的数据时,可以用pageContext对象的getAttribute( )方法。 例如:pagescope1、pagescope2。 PageScope2.jsp根本无法取得PageScope1.jsp设定的Name和Password值,因为在PageScope1.jsp当中,是把Name 和Password 的属性范围设为Page,所以Name和Password值只能在PageScope1.jsp当中取得。 例如:pagescope3。 若数据设为Page范围时,数据只能在同一个JSP网页上取得,其他JSP网页却无法取得该数据。,内建对象概述,Re

5、quest范围 Request 的范围是指在一JSP 网页发出请求到另一个JSP 网页之间,随后这个属性就失效。 设定Request 的范围时可利用request 对象中的setAttribute( )和getAttribute( )。 例如:RequestScope1.jsp、 RequestScope2.jsp。 除了利用转向(forward)的方法可以存取request 对象的数据之外,还能使用包含(include)的方法。,内建对象概述,Session、Application范围,内建对象概述,pageContext、request、session和application可以使用的储存

6、和取得属性的方法。,内建对象概述,到目前已大约介绍完JSP 中四种范围(Scope): Page、Request、Session 和Application。 要设置数据范围时,则只需要: pageContext.setAttribute(Year, new Integer(2001); request.setAttribute(Month, new Integer(12) ); session.setAttribute(Day, new Integer(27) ); application.setAttribute(Times, new Integer(10);,内建对象概述,使用getAtt

7、ribute(String name,Object value)取得name 属性的值时,会回传一个java.lang.Object,因此还必须根据name 属性值的类型做转换类型的工作。 例如: 若要取得String 类型的Name 属性时: String Name = (String)pageContext.getAttribute(Name); 若是Integer 类型的Year 属性时: Integer Year = (Integer)request.getAttribute(Year);,与输入/输出有关的内建对象,out对象 request对象 response对象,out对象,o

8、ut对象:主要作用是在客户端的浏览器内输出数据结果信息,被封装为javax.servlet.jsp.JspWriter接口,可以通过out对象对缓冲区进行操作。 通过调用pageContext.getOut()方法可以获取out对象。 out对象常用方法如下: public abstract void print() 显示各种数据类型的内容。 public abstract void println() 分行显示各种数据类型的内容。 public abstract void newLine() 输出一个换行字符,换一行。 public abstract void close() 关闭输出流。,

9、一个参数:boolean、char、int、long、float、double、java.lang.String、java.lang.Object,系统自动转换为字符串,out对象,out对象常用方法如下(续前页): public abstract void clear () 清除缓冲区中的内容,不将数据发送至客户端。 public abstract void clearBuffer () 清除缓冲区中的内容,并将数据发送至客户端。 public int getBufferSize() 获取缓冲区的大小。 public abstract int getRemaining() 获取缓冲区剩余空间

10、的大小。 public abstract void flush() 输出缓冲区中的数据。 public boolean isAutoFlush() 获取AutoFlush的取值。,out对象,JSP程序利用out对象将网页内容输出时,都要和客户端做一次连接,并会为此而消耗不少资源; 因此可以将要输出的内容放在一个固定大小的缓冲区中,等到缓冲区满时再一次将内容送往客户端,这需要将autoFlush设为true,否则缓冲区满时将产生IOException错误。 例如:测试autoFlush,setAutoFlushFalse.jsp 注意:out.println() 与等价。,request对象,

11、request对象:作用是获取通过HTTP协议连接到服务器的客户端传递的数据,封装了用户提交的信息,通过调用该对象的方法可以获得封装的信息,被封装为javax.servlet.http.HttpServletRequest接口。 HttpServletRequest 接口提供的方法可分为四大类: 管理request属性的方法: public java.lang.Object getAttribute () 返回name指定的属性值,若name不存在返回null。 public java.util.Enumeration getAttributeNames () 返回request对象所有属性的

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

13、ponse对象:作用是封装JSP 处理数据后产生的结果,并将其传回到客户端响应客户的请求,被封装为 javax.servlet.http.HttpServletResponse接口。 response对象用来提供给客户端浏览器的参考信息,如响应的标头、响应本体(HTML文本内容)及服务器端的状态码信息。 注意:任何标头的设定都应在响应本体传回前设定好,否则设定的值将不起作用。 例如:常用response.setContentType(“ContentType String”)设定响应的MIME类型与编码方式。 response.setContentType(“text/html; charse

14、t=Big5”),response对象,HttpServletResponse 接口提供的方法可分为三大类: 设定HTTP标头的方法:,response对象,HttpServletResponse 接口提供的方法可分为三大类: 设定响应状态码的方法: 用来URL 重写(rewriting)的方法: 例如:response.jsp,与context有关的内建对象,session对象 application对象 PageContext对象,cookie技术,HTTP是一种无连接的协议。 cookie的常见用途: 记录用户历史访问信息 Cookie使站点跟踪特定访问者的访问次数、最后访问时间和访问者

15、进入站点的路径; Cookie告诉在线广告商广告被点击的次数,从而可以更精确的投放广告; Cookie能帮助站点统计用户个人资料以实现各种各样的个性化服务; 自动登录 Cookie有效期限未到时,能使用户在不键入密码和用户名的情况下进入曾经浏览过的一些站点。,cookie技术,cookie:是一个小的、已命名的数据元素,服务器使用Set-Cookie头标将之作为HTTP数据包的一部分传送到客户端,实质是一段纯文本信息,保存在客户端指定目录,对同一服务器的后续请求使用一个cookie头标返回到服务器。 cookie是与Web站点而不是与具体页面相联系的。 cookie是有时效性的,有效期时间以秒

16、为单位。 从编程角度看,JSP中的cookie是Java提供的一个类 创建cookie: cookie中带有两个字符串参数代表cookie的名称和值 Cookie demoCookie = new Cookie(“CookieName”,“CookieValue”),cookie技术,设置cookie属性,cookie技术,设置cookie属性,cookie技术,实现会话的四种方式,实现会话的四种方式 使用持续Cookie。 重写包含额外参数的URL:利用GET方法在URL尾部添加一些额外的参数来达到会话追踪的目的。 http:/host/path/file.html;jsessionid=1

17、234, 建立含有数据的隐藏表单字段。 使用内建session对象 JSP引擎产生一个session对象,同时分配一个String类型的ID号,JSP引擎同时将这个ID号发送到客户端,存放在cookie中,使session对象和客户间建立了一一对应的关系。,session与cookie的区别,session和cookie有以下区别: 从存放的地点看:cookie存放在客户端的硬盘里;session保存在服务器端的内存里。 从存活的时间看:cookie可以长期保存在客户端,数据失效期限由expires属性指定;session随用户登陆网站而临时生成,随用户的下线或超时而消失。 从安全性来看:co

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

19、获得:HttpSession session=request.getSession(); 客户首次访问服务器上的一个JSP页面时,JSP引擎产生一个session对象,同时分配一个String型的ID号并发送到客户端写入cookie,使客户与服务器建立一一对应的关系。 客户继续访问网站上的其它页面时,不再分配给客户新的session对象,直到客户端浏览器关闭,该session对象消失,客户与服务器的会话结束。 当客户重新打开浏览器访问网站时创建新的session。,session对象,javax.servlet.http.HttpSession提供的方法如下:,session对象,public

20、 java.lang.Object getAttribute (java.lang.String name) 获取指定的name参数值。 public java.util.Enumeration getAttributeNames () 获取session的所有参数名。 public void setAttribute(java.lang.String name, java.lang.Object value) 设置指定name的session属性。 public void removeAttribute(java.lang.String name) 删除指定的session属性。 例如:se

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

22、vlet.ServletContext类提供了三类方法: 有关信息记录的方法: 例如:application.jsp,pageContent对象,PageContent对象:一般用于设置、获取当前JSP页面的一些属性,也能够存取页面的其他隐含对象(out、request、response、session、application等) 及其所支持的属性,被封装为 javax.servlet.jsp.PageContext接口。 javax.servlet.jsp.PageContext类提供了两类方法: 用于取得属性的方法:,pageContent对象,不过在使用下列方法时,需要指定范围的参数:,

23、javax.servlet.jsp.PageContext 类所提供范围参数有四个常数,分别代表四种范围:,pageContent对象,用于取得其它隐含对象的方法:,与Servlet和error有关的内建对象,config对象 page对象 exception对象,config对象,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() 获取服务器所有初始参数的名字。 p

温馨提示

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

评论

0/150

提交评论