您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业文化 > 第5章JSP内置对象.
JavaWeb开发技术教程第5章JSP内置对象主要内容•对象有效范围•out对象•request对象•response对象•session对象•exception对象•application对象•page对象•pageContext对象•config对象JSP中共9种内置对象对象有效范围•JSP中对象按照作用范围和持续时间不同,可以分为页内有效page、请求有效request、会话有效session和应用有效application四种不同的有效范围。•对属性的操作提供了两种方法:–setAttribute()方法–getAttribute()方法•1.页内有效:(page)指创建后只能在当前JSP页面(创建对象的页面)内被访问。•所有页内有效对象的引用存储在页面上下文对象pageContext中。•可以使用pageContext对象的setAttribute()和getAttribute()方法来传递数据•只有在同一页面内,页面有效的对象可以传递数据,而通过这个页面链接或用forward等转向语句到其他页面,都不能读取到属性的值。对象有效范围对象有效范围•2.请求有效:在处理同一个请求时,不同JSP页面创建的对象在这些页面内都是可以访问的,这些对象就是请求有效的对象。•所有请求有效的对象都是存储在JSP页面的request对象里的。•可以使用request对象的getAttribute()方法来设置属性,或用setAttribute()方法来获取属性。•在调用forward()方法转向的页面或者调用include()方法包含的页面中,都可以访问这个范围内的对象。对象有效范围•3.会话有效:指客户端和服务器之间持续链接一段时间,在这段时间内,当需要多次和服务器交互信息时,可以将有关信息存入session对象中,这些信息就是会话有效的。当超时或与服务器断开后,这些属性就不可用。•所有会话有效的对象都是存储在JSP页面的session对象里的。•同一会话的不同页面之间可以使用session这个对象的getAttribute()方法来设置属性,或用setAttribute()方法来获取属性,从而传递数据。对象有效范围•属性的值可以用forward或链接或include等方式保持会话有效,从而传递数据。•页面如果要使用会话有效的对象,其page指令中属性session不能为false,默认值是true。对象有效范围•4.应用有效:应用有效的作用范围是从Web服务器一开始提供服务直至服务停止,信息只要存入application对象中,就长期驻留内存,可以任意从不同的页面调用对象。由于应用有效的对象一直占用内存,因此在实际使用中不宜过多使用,以免服务器负载过大。•所有应用有效的对象都是存储在JSP页面的application对象里的。内部对象总体介绍:JSP中共9种内置对象•out对象•request对象•response对象•session对象•exception对象•application对象•page对象•pageContext对象•config对象•重点讲解前6种注意大小写!内建对象概述•JSP提供了一些由容器实现和管理的内建对象,在JSP页面中可以直接使用,不需要实例化,通过存取这些内置对象实现与JSP页面的Servlet环境的相互访问。•在JSP中一共提供了九个内置对象:out、request、response、session、application、pageContext、exception。•由于JSP是构建在Servlet基础之上的,从本质上将,JSP的每个内置对象都和JavaServletAPI包中的类相对应,在服务器运行时自动生成。对象名类型作用域requestjavax.servlet.http.HttpServletRequestrequestresponsejavax.servlet.http.HttpServletResponsepagesessionjavax.servlet.http.HttpSessionsessionapplicationjavax.servlet.ServletContextapplicationoutjavax.servlet.jsp.JspWriterpageexceptionjava.lang.ThrowablepagepageContextjavax.servlet.jsp.PageContextpageconfigjavax.servlet.ServletConfigpagepagejava.lang.Objectpage内部对象总体介绍:JSP中共9种内置对象--注意大小写!1、out对象•out对应的接口为javax.servlet.jsp.JspWriter。•作用:主要是向浏览器输出数据,也可以通过out对象对缓冲区进行操作。•除了直接使用内置对象以外,我们还可以使用pageContext.getOut()方法获取out对象。•JSP程序利用out对象将网页内容输出时,都要和客户端做一次连接,并且会为此消耗不少的资源;•因此可以将要输出的内容放在一个固定大小的缓冲区中,等到缓冲区满时再一次将内容送往客户端,这就要将autoFlush设为true,否则缓冲区满时将产生IOException错误。out对象主要方法•out对象向浏览器输出数据的常用方法如下:–publicabstractvoidprint()•显示各种类型的数据–publicabstractvoidprintln()•分行显示各种类型的数据–publicabstractvoidclose()•关闭输出流–注意:out.println()与%=%等价一个参数:boolean、char、int、long、float、double、java.lang.String、java.lang.Object,系统会自动转换为字符串out对象主要方法•out对象对缓冲区进行操作常用方法:–publicabstractvoidclear()•清空缓冲区中的内容,不将数据发送至客户端。–publicabstractvoidclearBuffer()•清空缓冲区中的内容,并将缓冲区中的数据发送到客户端。–publicabstractvoidgetBuffersize()•获得缓冲区的大小,对比回顾page指令–publicabstractvoidgetRemaing()•返回缓冲区剩余空间的大小–publicabstractvoidflush()•输出缓冲区中的数据。–publicabstractvoidisAutoFlush()•获取AutoFlush的取值%@pagecontentType=text/html;charset=GBK%HTML%!inti=0;%HEADTitle改变表格行颜色/Title/HEADBODYCENTERTablewidth=80%%i=0;while(i10){i++;if(i%2==0){out.println(trbgcolor=#00FF00);}else{out.println(trbgcolor=#FF0000);}out.println(TD当前行数:+i+/TD);out.println(/TR);}%/Table/CENTER/BODY/HTML%@pagecontentType=text/html;charset=GBKbuffer=2kbautoFlush=false%htmlheadtitleout对象对缓冲区进行操作常用方法/title/headbody%out.println(hello);out.clear();out.println(Stillsayhello+br);out.println(BufferSizeoftheoutObjectis:+out.getBufferSize()+br);out.println(Remainofbufferis:+out.getRemaining()+br);%%for(inti=0;i1500;i++){out.print(c);}%%=out.isAutoFlush()%/body/html2、request对象•是一个javax.servlet.http.HttpServletRequest对象。•封装了浏览器的请求信息;•通过request对象可以获取用户的请求信息;•提供了获取cookie、header和session等对象的数据的方法。•请求信息的内容包括请求的头信息(Header)、系统信息(比如:编码方式)、请求的方式(比如:GET或POST)、请求的参数名称和参数值等信息request对象提供的四类方法•1.管理request属性的方法:–publicvoidsetAttribute(java.lang.Stringname,java.lang.Objecto)设置请求对象中的一个属性。–publicjava.lang.ObjectgetAttribute()返回name指定的属性值,若name不存在则返回null。–publicjava.util.EnumerationgetAttributeNames()返回request对象所有属性的名称,并将其封装在Enumeration对象中。request对象提供的四类方法•2.获取请求参数的方法–StringgetParameter(Stringname)获取name的参数值。–EnumerationgetParameterNames()获取所有参数的名称。–String[]getParameterValues(Stringname)获取name的所有参数值。–MapgetParameterMap()取得一个要求参数的Map。request对象提供的四类方法•3.获取请求HTTP标头的方法–StringgetHeader(String)获取name的标头–EnumerationgetHeaderNames()获取所有表头的名称–EnumerationgetHeaders(Stringname)取得name所有的标头–IntgetIntHeader(Stringname)取得整数类型的标头–longgetDateHeader(Stringname)获取日期类型的name的标头–Cookie[]getCookies()获取与请求相关的Cookies%--requestHeader.jsp--%%@pagecontentType=text/html;charset=GBkimport=java.util.*%htmlheadtitle客户端请求信息/title/headbodyp您的客户端发送的HTTP请求头包含如下信息:/p%Enumerationenum1=request.getHeaderNames();while(enum1.hasMoreElements()){StringheaderName=(String)enum1.nextElement();StringheaderValue=request.getHeader(headerName);%b%=headerName%/b:%=headerValue%br%}%/body/htmlrequest对象提供的四类方法•4.其他方法,如获取请求的URL、IP和session–StringgetContextPath()获取Context路径–StringgetMethod()获取HTTP请求提交的方法–StringgetProtocol()获取请求使用的协议–StringgetQueryString()获取请求的参数字符串,注意此时HTTP请求的方法必须为get方法。–
本文标题:第5章JSP内置对象.
链接地址:https://www.777doc.com/doc-2110264 .html