《内置对象.ppt》由会员分享,可在线阅读,更多相关《内置对象.ppt(25页珍藏版)》请在三一办公上搜索。
1、1,第4章 内置对象,JSP内置对象,也称为隐含对象(Implicit Object),由JSP容器自动为JSP页面提供。这些对象不需要预先声明就可以直接在脚本程序中进行使用。JSP容器提供了以下几个内置对象,它们是:request、response、out、session、application、config、pageContext、page、exception和cookie,本章将对它们进行详细介绍。,2,本章知识要点:,掌握请求对象request掌握响应对象response掌握输出对象out和页面上下文对象pageContext掌握会话对象session掌握全局应用程序对象applica
2、tion,3,4.1 request请求对象,request对象是HttpServletRequest接口的一个实例,因此它可使用HttpServletRequest接口的方法,可以很方便地取得客户端的各种信息。request对象的生命周期是由JSP容器自动控制。当客户端通过HTTP协议请求一个JSP页面时,JSP容器就会创建request对象并将请求信息包装到request对象中;当JSP容器处理完请求后,request对象就会被销毁。,4.1.1 request简介,Servlet容器将客户端信息封装在一个代表客户端的request对象中,该对象是javax.servlet.Servlet
3、Request的子类型。封装到HttpServletRequest对象中的客户端信息包括请求头(Header)、系统信息(比如编码方式)、请求方式(比如GET或POST)、请求参数信息、cookie和其他信息。,4,4.1.2 request对象应用,request对象中常用方法有getParameter()、getRemoteUser和getRealPath()等方法。通过这些方法可以获得客户端的数据。在本节通过几个实例说明如何使用这些方法。,5,客户端使用协议为:获得接收客户端提交信息的页面:接收客户端提交信息的长度:客户提交信息的方式:,HTTP文件头中User-Agent的值:HTTP
4、文件头中accept的值:HTTP文件头中Host的值:,HTTP文件头中accept-encoding的值:服务器名称:服务器端口号:,客户端的IP地址:客户端主机的名称:,4.2 response响应对象,response对象是javax.servlet.ServletResponse接口中一个针对HTTP协议和实现的子类。response对象是表示服务器对请求的响应的HttpServletResponse对象,包含服务器向客户机做出信息的应答信息。response对象响应信息包含的内容包括:MIME类型的定义、保存的Cookie、连接到Web资源的URL等。,10,4.2.1 respo
5、nse简介,当服务器处理完客户请求时,往往需要发送一些信息给客户端浏览器,或者需要重定向到其他页面。和request对象一样,response对象由容器生成,作为jspService()方法的参数被传入JSP。因为输出流是缓冲的,所以可以设置Http状态码和response头。内部对象response也是一个HttpServletResponse对象,它提供了几个用于设置送回浏览器的响应方法(例如,Cookies信息)。,11,4.2.2 response对象应用,response对象主要用来响应用户请求。,12,4.3 out输出对象,out对象是向客户端输出流进行写操作的对象。在JSP页面
6、中,可以使用out对象将所需的信息发送到客户端浏览器。在JSP容器对JSP页面进行编译时,out对象会被转换成java.io.PrintWriter对象。,13,4.3.1 out简介,out对象的基类是JspWriter。out对象主要的方法是:print()方法和println()方法。两者区别在于print()方法输出完后,并不结束当前行,而println()方法在输出完毕后,会结束当前行。上述两种方法在化JSP页面设计中是经常用到的,它们可以输出各种格式的数据类型,如字符型、整型、浮点型、布尔型甚至可以是一个对象,还可以是字符串与变量的混合型以及表达式。,14,15,4.3.2 out
7、对象应用,在JSP中,out对象主要用来向客户端输出数据。在使用out对象时会自动转换为java.io.PrintWriter对象,我们实际上使用的是PrintWriter对象,它是属于javax.servlet.JspWriter类实例。JspWriter对象提供了几个将内容写入响应缓冲区的方法。由于JspWriter是从java.io.Writer派生而来的,java.io.Writer提供了一系列的写方法。因此,JspWriter本身也提供了一系列print方法。,16,4.4 pageContext对象,pageContext对象被封装成javax.servlet.jsp.PageCo
8、ntext接口,它代表当前运行页面的一些属性。pageContext对象的创建和初始化都是由容器来完成,在JSP页面中可以直接使用pageContext对象。,4.4.1 pageContext简介,pageContext对象在JSP容器执行jspService()方法之前就已经被初始化了,它的主要功能是让JSP容器控制其他隐含对象。例如,对象的生成与初始化、释放对象本身。pageContext对象提供了对JSP默认的隐含对象,以及其他可用对象进行操作的基本方法。这样,通过pageContext对象就能够实现可用对象的属性信息在Servlet与JSP页面之间互相传递。,17,4.4.2 pag
9、eContext对象应用,虽然pageContext对象可以访问HttpSession和ServletContext对象,但是通常情况下,JSP容器已经为我们HttpSession和ServletContext的实例,即session和application内置对象。,18,4.5 session会话对象,session对象是JSP中一个很重要的内置对象,类型为javax.servlet.http.HttpSession。当用户与服务器连接时,服务器为每个用户创建一个session对象,并设定其中内容。默认情况下,session对象在用户第一次连接到服务器时由Web服务器自动创建并设定sess
10、ion对象的属性值,然后被关联到request对象。Web开发人员主要使用session对象来维护会话状态。,19,4.5.1 session简介,session对象的类型为HttpSession。session对象提供了一些常用方法,通过这些方法可以维护客户端与服务器端的会话状态。,20,21,4.5.2 session对象应用,在实际使用中,我们经常用session对象来判断该用户是否具有访问某个页面的权限,防止无权限用户访问用户本不能访问的页面。我们可以单独的编写一个名为check.jsp文件,将它用include指令包含到每一个JSP页面中,这样当用户非法访问时,check.jsp文件
11、会从用户的session对象中取出用户的用户名,该用户名是在通过了身份验证后写入的。所以只要读出的值为空,就可判断当前用户无访问权限这时会利用response对象重定向到登录界面进行身份验证,并提示错误信息。,22,4.6 application对象,application对象保存了一个Web应用系统中一些公用的数据,与session对象相比,application对象所保存的数据可以被所有用户共享,而session对象则是每个用户专用。当Web服务器中的任一个JSP页面开始执行时,将产生一个application对象。当服务器关闭时,则产生的application对象也随之消失。,23,4.
12、7 execption对象,exception对象是一个异常对象,当一个页面在运行过程中发生了例外,就产生这个对象。如果一个JSP页面要应用此对象,就必须把isErrorPage设为true,否则该JSP页面将无法编译。下面实例中在一个页面中产生一个算术异常,在另一个页面中进行处理。,24,4.8 config参数配置对象,config对象的类型是javax.servlet.ServletConfig。它提供存取Servlet初始参数及有关servlet环境信息的ServletContext对象。config对象的范围也是page。config对象的类型javax.servlet.ServletConfig接口,它表示Servlet的配置。当初始化一个Servlet时,容器把某些信息通过config对象传递给对应的Servlet。,25,4.9 cookie对象,cookie的工作原理为:cookie将通过HTTP Headers从服务端返回到浏览器上。服务端首先在响应中创建一个cookie,浏览器后面请求的cookie header中就会返回这个cookie来完成浏览器的认证。,