资源描述
1,第5章JSP中的内建对象,2,主要内容,1.JSP内建对象简述2.out对象3.request对象4.response对象5.session对象6.PageContext对象7.application对象8.config对象9.page对象10.exception对象,3,1.JSP内建对象概述,JSP规范中定义了9种内建对象,它们分别为request、response、out、session、application、config、pageContext、page和exception,在JSP中并不需要编写任何额外的代码就可以自动使用这些内建对象。其中网页输出对象out和包含客户端请求信息的response对象是最基本的对象。out对象可以在Java代码中轻松地输出网页内容,而不必将HTML语法和属于JSP程序的部分区分开来。而request对象则包含了所有关于客户端的信息,只有通过该对象才能取得客户端传送过来的信息,4,2.Out对象,out对象的主要作用是在Web浏览器内输出信息。out对象被封装为javax.servlet.jsp.JspWriter接口,它是JSP编程过程中经常用到的一个对象,在编程过程中通过该对象可以对缓冲区进行操作。通过调用pageContext.getOut()方法可以获取out对象。,5,clear():清除缓冲区中的内容,不将数据发送至客户端。clearBuffer():清除缓冲区中的内容,并将数据发送至客户端。close():关闭输出流。flush():输出缓冲区中的数据。getBufferSize():获取缓冲区的大小。getRemaining():获取缓冲区的剩余空间。isAutoFlush()。newLine():输出一个换行字符,换一行。print():显示各种数据类型的内容。println():分行显示各种数据类型的内容。,6,每当JSP程序利用out对象将网页内容输出时都要和客户端做一次连接,而且每次的连接都会耗掉不少系统资源,所以比较好的方法就是先将输出的内容放在一个固定大小的缓冲区中,等到缓冲区充满时才一次将内容送往客户端。如果autoFlush设定为true,则当缓冲区内容充满时JspWriter会自动将内容送出。如果autoFlush设为false,则在缓冲区内容充满时会产生IOException的错误。,7,3.Request对象,request对象的作用是获取客户端所需要的信息。request对象被封装为javax.servlet.http.HttpServletResquest接口。当客户端请求一个JSP页面时,JSP引擎会将客户端的请求信息包装在这个request对象中。请求信息的内容包括:请求的标头(Header)信息(如浏览器的版本名称、语言和编码方式等)、请求的方式(HTTP方法:如GET、POST和PUT,的method属性设定值)、请求的参数名称和参数值、客户端的主机名称等,然后JSP引擎将request对象当作_jspService方法的HttpServletRequest参数值,通过request对象获取有关客户端的请求信息,8,4.Response对象,request对象是使用非常频繁的对象之一,然而request对象功能的实现离不开response对象的支持,request对象和response对象的结合可以使JSP更好地实现客户端与服务器端的信息交互,下图显示了客户端与服务器端信息交互的流程。,9,由可以看出,用户在客户端(浏览器)发出的请求信息被存储在request对象中并发送给Web服务器,JSP引擎(通常捆绑在Web服务器上)根据JSP文件的指示处理request对象,或者根据实际需要将request对象转发给由JSP文件所指定的其他的服务器端组件(如Servlet组件、JavaBean组件或EJB组件等)处理。处理结果则以response对象的方式返回给JSP引擎,JSP引擎和Web服务器根据response对象最终生成JSP页面,返回给客户端浏览器,这也是用户最终看到的内容。用于客户和服务器之间的通信协议最常用的是HTTP,此外也可以使用特定的私有协议。由此可见,response对象在JSP相应客户请求时的作用是非常巨大的。,10,response对象的作用是封装JSP产生的响应,然后将其发送至客户端以响应客户的请求。response对象被封装为javax.servlet.http.HttpServletResponse接口。JSP引擎会根据客户端的请求信息建立一个预设的response回应对象,然后传入_jspService()方法中。它是用来提供给客户端浏览器的参考的信息,如回应的标头、回应本体(如HTML文本的内容)以及服务器端的状态码信息,11,5.Session对象,session对象的作用是记录每个客户端的访问状态,以便跟踪每个客户端的操作状态。session对象被封装为javax.servlet.http.HttpSession接口,通过调用pageContext.getSession()方法可以获取一个session对象。当客户端请求超过一个以上的JSP程序网页时,session对象提供有保存请求时期对象属性的方法,所保存的对象在请求过程中都是有效的。,12,6.PageContext对象,PageContext对象的作用是取得任何范围的参数,通过PageContext对象可以获取JSP页面的out、request、response、session、application等对象,重新定向客户的请求等。,13,7.application对象,application对象的主要作用是为多个应用程序保存信息,直至服务器关闭为止。application对象被封装为javax.servlet.SercletContext接口的类型,通过pageContext.getSrevletContext()方法可以获取application对象。,14,8.config对象,config对象的主要作用是取得服务器的配置信息。config对象被封装为javax.servletConfig接口,通过pageContext.getServletConfig()方法可以获取一个config对象。config提供存取servletclass初始化参数以及有关server环境信息的ServletContext对象。,15,9.Page对象,page对象的实质就是java.lang.Object,它是java.lang.Object类的一个实例。page对象代表JSP本身,更确切的说,它是代表JSP被转译后的Servlet,它可以调用Servlet类定义的方法,作用和Java中的this一样。,16,10.Exception对象,exception对象的作用是显示异常信息,它是java.lang.Throwable的一个实例,只有在包含isErrorPage=true的页面中才可以被使用,在一般的JSP内容中使用该对象将无法编译JSP文件。在JSP页面编写过程中常会出现如下几种错误,读者应该注意。空指针错误:java.lang.NullPointerException格式化数字错误:java.lang.NumberFormatException类定义未找到错误:java.lang.NoClassDefFoundErrorJAVA错误:java.lang.Error,17,小结,本章主要介绍了JSP中的9个内建对象,分别为request、response、out、session、application、config、pageContext、page和exception,其中request对象主要是负责处理客户请求,请求包括来自GET/POST请求的参数,response对象负责网页传回客户端的响应,pageContext对象进行网页属性的管理,session对象进行与请求有关的会话,application对象为多个应用程序保存信息,多个客户端共享一个application对象,out对象用来传送相应的输出流,config对象进行servlet的构架对象,page对象表示JSP网页本身,exception对象负责处理网页出现的错误。,18,习题,一、填空题(1)向客户端输出动态内容,需要使用_内建对象。(2)保存用户信息的内建对象是_。(3)_对象表示JSP页面本身。(4)负责处理客户请求的对象是_。二、编程题(1)设计一个JSP页面,要求JSP页面的颜色随着当前月份的变化而变化。,19,谢谢!,结束,
展开阅读全文