《第04章--JSP内置对象详解-JSP课件.ppt》由会员分享,可在线阅读,更多相关《第04章--JSP内置对象详解-JSP课件.ppt(37页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第4章章 JSP内置对象详解内置对象详解 本章内容本章内容学习内容内置对象是JSP中已经创建的、可以在页面的脚本中直接使用的Java对象。JSP的9个内置对象:request、response、pageContext、session、application、out、config、page、exception学习重点理解并能熟练应用:request、response、session、application、out、exception了解其他的内置对象4.1 4.1 请求对象:请求对象:request request request对象包含了来自客户端的请求信息:请求来源、标头、Cookie、参
2、数等。主要通过该对象的方法来处理请求。下面介绍其几种常见用法说明:说明:参数名参数名与与form表单中的表单中的name属性属性对应,或者与提交链对应,或者与提交链接的参数名对应,如果参数值不存在,则返回接的参数名对应,如果参数值不存在,则返回null值值。(1)获取单值参数的值1.1.获取请求参数获取请求参数 String var=request.getParameter(参数名参数名);HTTP请求中的参数的值均为字符串,对应Java的String类。(2)获取多值参数的值String arr=request.getParameterValues(参数名参数名);例:例:CH04Reque
3、stDemorequest_param获取获取CookieCookie对象对象 Cookie是Web应用程序保存用户相关信息提供的一种有效的方法,它是一段文本信息,伴随着用户请求和页面响应在Web服务器和浏览器之间传递。用户每次访问站点时,Web应用程序都可以读取Cookie包含的信息。在JSP页面中,可以通过requet对象中的如下方法获得所有Cookie,进而读取每个Cookie的名称和值:Cookie cookie=request.getCookies();例:例:CH04RequestDemorequest_cookie获取客户端信息获取客户端信息 request对象的一些方法可以用于
4、确定组成JSP页面的客户端的信息。方法名称方法名称含义含义String getMethod()返回用来生成请求的返回用来生成请求的HTTP方法名称,例如方法名称,例如get()方法或方法或post()方法等方法等String getPathInfo()返回任何额外的路径信息,这些信息与服务器小程序路径、查询字符串之返回任何额外的路径信息,这些信息与服务器小程序路径、查询字符串之间的间的URL相关联相关联String getRequestURI()返回请求的返回请求的URI部分,位于部分,位于HTTP请求第一行的协议名和查询字符串之间请求第一行的协议名和查询字符串之间的内容的内容String g
5、etContextPath()返回请求返回请求URI部分,表示请求的应用程序环境部分,表示请求的应用程序环境String getServletPath()返回请求返回请求URI部分,指定服务器小程序或部分,指定服务器小程序或JSP页面页面String getQueryString()返回跟随在返回跟随在URI的路径部分后面的查询字符串的路径部分后面的查询字符串例:例:CH04RequestDemorequest_clientinfo4.2 4.2 响应对象:响应对象:response response response对象与request对象相反,包含服务器向客户端作出的应答信息。页面重定向页
6、面重定向 JSP页面可以使用response对象中的setRedirect()方法将客户请求重定向到一个不同的页面资源。JSP页面还可以使用response对象中的sendError()方法指明一个错误状态,该方法接受一个错误及一条可选的错误信息。该信息将在内容主体上返回给客户。上述两个方法都会中止当前的请求和响应。上述两个方法都会中止当前的请求和响应。vsendError(int number):使使用用指指定定的的状状态态码码向向客客户户发发送错误响应。送错误响应。vsendError(int number,String msg):使使用用指指定定的的状状态码和描述性消息向客户发送错误响应
7、。态码和描述性消息向客户发送错误响应。vsendRedirect(String location):指定的重定向位置:指定的重定向位置URL并向客户发送重定向响应,可以使用相对并向客户发送重定向响应,可以使用相对URL。例:例:CH04ResponseDemoresponse_redirect缓冲区的输出缓冲区的输出 缓冲可以有效地在服务器与客户之间传输内容。HttpServletResponse对象为支持jspWriter对象而启用了缓冲区配置。response对象中的getBufferSize()方法的返回值用于JSP页面的当前缓冲区容量;response对象中的setBufferSize
8、()方法允许JSP页面为响应的主体设置一个首选的输出缓冲区容量。response对象中用于相应缓冲的方法如下:vflushBuffer()throws IOException:强强制制把把缓缓冲冲区区中中的的内内容容发发送送给客户。给客户。vgetBufferSize():返返回回响响应应所所使使用用的的实实际际缓缓冲冲区区大大小小,如如果果没没使使用用缓冲区,则该方法返回缓冲区,则该方法返回0。vsetBufferSize(int size):为响应的主体设置首选的缓冲区大小。为响应的主体设置首选的缓冲区大小。vboolean isCommitted():表表示示响响应应是是否否已已经经提提
9、交交,提提交交的的响响应应已已经经写入状态码。写入状态码。vreset():清除缓冲区存在的任何数据,同时清除状态码。清除缓冲区存在的任何数据,同时清除状态码。4.3 4.3 会话对象:会话对象:session session session对象是java.servlet.http.HttpSession类的子类对象.理解理解session session 客客户户端端session的的ID值值:程序运行结果如图所示:session标识可以通过getId()方法得到,具体代码如下:例:例:CH04SessionDemosession_introduce内置对象对通信的控制内置对象对通信的控制
10、resquest、response和session是JSP内置对象中的重要3个对象,这3个对象体现了服务器端与客户端进行交互通信的控制。resquest、response和session内置对象的通信过程如图所示。服务器客户端requestresponsesessionJSP通过request对象控制客户浏览器的请求;通过response对客户浏览器进行响应;而session就维持这个反反复复的过程中会话起见需要传递的数据信息。移除指定移除指定sessionsession中的对象中的对象 JSP页面可以将任何已经保存到session中的对象进行移除操作。session内置对象使用removeA
11、ttribute()方法所提供的名称移除,removeAttribute()方法的语法如下:void removeAttribute(java.lang.String name)参数参数name为为String类型的值,代表移除的对象的名称。类型的值,代表移除的对象的名称。sessionsession销毁销毁 在JSP页面中,可以通过session对象中的invalidate()方法删除已经保存到session中所有对象。invalidate()方法的语法如下:void invalidate()例:例:CH04SessionDemosession_introduce 第第4步步sessions
12、ession超时管理超时管理 在JSP页面中,确定客户端session是否存在唯一的方法是使用超时设置。这是因为Web客户在进入非活动状态时不通知服务器。为了清除存储在session对象中的客户申请资源,Servlet容器设置一个超时窗口。在非活动的时间超出了窗口的大小时,JSP容器将使session对象无效并撤销所有属性的绑定,从而管理session的声明周期。session对象用于超时管理如表所示。方法方法含义含义session.getLastAccessedTime()获取客户端最近访问服务器端的保存时间获取客户端最近访问服务器端的保存时间session.getMaxInactiveIn
13、terval()获取客户端停止访问服务器端的保存时间获取客户端停止访问服务器端的保存时间session.setMaxInactiveInterval(int value)设置客户端停止放问候,设置客户端停止放问候,session在服务器端的保存时间在服务器端的保存时间sessionsession实现局部网页计数器实现局部网页计数器 注意:当浏览器关闭时或session过期时,网页访问次数将回到 初始化值。例:例:CH04SessionDemocounterbysession.jsp4.4 4.4 多客户端共享对象:多客户端共享对象:application application WEB服务器启
14、动后,部署在该服务器上的WEB应用程序可以开始运行。每个WEB应用程序开始运行时,会创建唯一的application对象,供所有访问该应用程序的客户端共享。当应用程序结束时,application对象被销毁。applicationapplication对象常用方法对象常用方法 方法名方法名描述描述setAttribute(String key,Object obj)将将参参数数Object指指定定的的对对象象obj添添加加到到application对对象象中中,并并为为添添加加的的对对象象指指定定一一个个索索引引getAttribute(String name)获取指定的属性值。获取指定的属性
15、值。getAttributeNames()获取一个包含所有可用属性名的枚举。获取一个包含所有可用属性名的枚举。removeAttribute(String name)删除一个指定删除一个指定Application的值。的值。getContext(String uripath)获取指定获取指定WebApplication的的application对象对象getResource(String path)获取指定资源获取指定资源(文件及目录文件及目录)的的URL路径路径getResourceAsStream(String path)获取指定资源的输入流获取指定资源的输入流getServlet(Str
16、ing name)返回指定的返回指定的Servlet。log(String msg)把指定消息写入把指定消息写入Servlet的日志文件。的日志文件。例:例:applicationapplication实现全局网页计数器实现全局网页计数器 注意:注意:(1)(1)当浏览器关闭后,再次访问该网页时,访问次数继续增加。当浏览器关闭后,再次访问该网页时,访问次数继续增加。(2)(2)应用程序重启后,访问计数从应用程序重启后,访问计数从1 1开始。开始。例:例:CH04ApplicationDemocounterbyapplication.jsp课堂思考:课堂思考:如何实现一个客户会话过程中只在第如何
17、实现一个客户会话过程中只在第1 1次访问该页面时访问次数次访问该页面时访问次数继续增加,而刷新页面访问次数不增加?继续增加,而刷新页面访问次数不增加?4.5 4.5 页面对象:页面对象:page page page对象的声明类型为java.lang.Object。它代表JSP本身,即对应的Servlet类的对象。可执行使用的方法来自Object类.较少使用.4.7 4.7 输出对象:输出对象:out out out对对象象主主要要内内容容是是向向web浏浏览览器器内内输输出出各各种种数数据据类类型型的的内内容容,并并且且管管理应用服务器上的输出缓冲区,缓冲区默认值是理应用服务器上的输出缓冲区,
18、缓冲区默认值是8KB。out对对象象被被封封装装为为javax.servlet.jsp.JspWriter接接口口,它它是是JSP编编程过程中经常用到的一个对象。程过程中经常用到的一个对象。out对象的常用方法如表所示。对象的常用方法如表所示。方法名方法名描述描述print()/println()输出各种类型数据输出各种类型数据clearBuffer()清除缓冲区的数据,并将数据写入客户端清除缓冲区的数据,并将数据写入客户端clear()清除缓冲区的当前内容,但不将数据写入客户端。清除缓冲区的当前内容,但不将数据写入客户端。flush()输出缓冲区中的数据。输出缓冲区中的数据。newLine(
19、)输出一个换行符号。输出一个换行符号。close()关闭输出流。关闭输出流。4.8 4.8 配置对象:配置对象:config config config对象的主要作用是取得服务器的配置信息。对象的主要作用是取得服务器的配置信息。config对象被封装为对象被封装为javax.servletConfig接口,通过接口,通过pageContext.getServletConfig()方法可以获取一个方法可以获取一个config对象。对象。补充:补充:web.xmlweb.xml初步初步web.xml web.xml JSPJSP应用的部署描述符文件应用的部署描述符文件应用的部署描述符文件应用的部署
20、描述符文件 就像所有就像所有XML文件一样,必须以一个文件一样,必须以一个XML头开始。这个头开始。这个头声明可以使用的头声明可以使用的XML版本并给出文件的字符编码。版本并给出文件的字符编码。DOCYTPE声明必须立即出现在此头之后。这个声明告诉声明必须立即出现在此头之后。这个声明告诉服务器适用的服务器适用的servlet规范的版本(如规范的版本(如2.2或或2.3)并指定管)并指定管理此文件其余部分内容的语法的理此文件其余部分内容的语法的DTD(Document Type Definition,文档类型定义,文档类型定义)。所有部署描述符文件的顶层(根)元素为所有部署描述符文件的顶层(根)
21、元素为web-app。注。注意:意:XML元素是大小写敏感的。元素是大小写敏感的。目前版本将目前版本将DOCTYPE声明的工作交给根元素声明的工作交给根元素web-app的的属性说明。属性说明。补充:补充:web.xmlweb.xml初步初步web-app version=2.5 30 30 welcome-welcome-XML头头根元素根元素web-app及其属性及其属性配置配置session的元素的元素配置配置JSP应用默认的起始页面应用默认的起始页面configconfig对象获取初始化参数对象获取初始化参数 (1 1)首先在web.xml文件中配置Servlet初始化参数:sanya
22、ng jsp-email sanyang /index.jsp configconfig对象获取初始化参数对象获取初始化参数 (2 2)然后在JSP页面中通过config对象中的getInitParameter()方法获取在web.xml文件中初始化的参数,程序代码如下:钟毅邮箱地址:钟毅邮箱地址:例:例:CH04OtherDemogetinitparam.jsp、web.xml4.9 4.9 异常对象:异常对象:exception exception exception异常对象指的是web应用程序所能够识别并能够处理的问题。在Java语言中,通过“try/catch”的关键在来处理异常信息情
23、况,如果在JSP页面中出现没有捕捉到的异常信息,那么系统会自动生成exception对象,并把这个对象传送到page指令元素中设定的错误页面中,然后在错误提示页面中处理相应的exception对象。exception对象只能在错误页面中才可以使用,即页面指令元素里存在isErrorPage=true的页面。exceptionexception对象的常用方法对象的常用方法 exception对象的常用方法如表所示。方法名方法名描述描述getMessage()获得当前的错误信息获得当前的错误信息getLocalizedMessage()本地化语言的异常错误本地化语言的异常错误printStackTrace()以以标标准准错错误误的的形形式式输输出出一一个个错错误误和和错错误误的的堆堆载跟踪载跟踪fillInStackTrace()重写异常的执行栈轨迹重写异常的执行栈轨迹toString()关于异常错误的简单信息描述关于异常错误的简单信息描述exceptionexception设置指定错误页面设置指定错误页面 首先,建立一个自定义的错误页面“error.jsp”,即在该页面的开始部分标识符中添加如下代码:然后,将其他页面指向该错误页面。在标识符中添加以下代码:这样,就给其他页面指定了错误页面。例:例:CH04OtherDemoexceptionhandle
限制150内