《第4章JSP内置对象(教学)》由会员分享,可在线阅读,更多相关《第4章JSP内置对象(教学)(72页珍藏版)》请在金锄头文库上搜索。
1、JSP基础教程基础教程(第第2版版) 第第4 4章章 JSPJSP内置对象内置对象 编编程程1第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) 主要内容主要内容4.1 request对象对象4.2 response对象对象4.3 session对象对象4.4 out对象对象4.5 application对象对象2第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) 1.JSP内建对象概述内建对象概述JSPJSP规范中定义了规范中定义了9 9种内建对象,它们分别为种内建对象,它们分别为requestrequest、responseres
2、ponse、outout、sessionsession、applicationapplication、configconfig、pageContextpageContext、pagepage和和exceptionexception,在,在JSPJSP中中并不需要编写任何额外的代码就可以自动使用这些内并不需要编写任何额外的代码就可以自动使用这些内建对象。其中网页输出对象建对象。其中网页输出对象outout和包含客户端请求信和包含客户端请求信息的息的responseresponse对象是最基本的对象。对象是最基本的对象。outout对象可以在对象可以在JavaJava代码中轻松地输出网页内容,而不
3、必将代码中轻松地输出网页内容,而不必将HTMLHTML语法语法和属于和属于JSPJSP程序的部分区分开来。而程序的部分区分开来。而requestrequest对象则包对象则包含了所有关于客户端的信息,只有通过该对象才能取含了所有关于客户端的信息,只有通过该对象才能取得客户端传送过来的信息得客户端传送过来的信息 3第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) 内部对象内部对象所属类型所属类型用用 途途作用范围作用范围requestjavax.servlet.httpServletRequest包含了请求方的信息包含了请求方的信息 requestresponse
4、javax.servlet.httpServleffiesponse用以设定用以设定JSP回应信息的回应信息的资料设定资料设定pageOut javax.servlet.jsp.JspWriter响应信息流的标准输出响应信息流的标准输出pagesessionjavax.servlet.Http.HttpSession在同一请求中所产生的在同一请求中所产生的session资料,目前只对资料,目前只对Http协议有定义协议有定义Sessionapplicationjavax.servlet.ServletContext提供安全信息提供安全信息applicationconfigjavax.servl
5、et.ServletConfig提供配置信息提供配置信息pagepageContextjavax.servlet.jsp. PageContext提供当前页面属性提供当前页面属性pagepagejava.lang. Object同于同于java的的thispageexceptionjava.lang. Throwable异常处理异常处理pageJSP内部对象与对应内部对象与对应Servlet API的关系的关系 4第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) 4.1 request对象对象 交互性是动态网页的基本功能。交互性可简单交互性是动态网页的基本功能。
6、交互性可简单地理解为地理解为Server与与Client之间相互作用、相互传递信之间相互作用、相互传递信息。息。JSP是实现动态网页的强大技术,是实现动态网页的强大技术,request对象对象便是便是JSP实现交互性的一个重要内部对象。实现交互性的一个重要内部对象。request对象负责向服务器传递客户端的信息,这是实现交对象负责向服务器传递客户端的信息,这是实现交互的基础,只有通过它,服务器才能了解客户端的互的基础,只有通过它,服务器才能了解客户端的需求,然后才能依此做出响应。需求,然后才能依此做出响应。5第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) JS
7、P页面运行过程中。首先,页面运行过程中。首先,JSP引擎把存放在引擎把存放在request内部对象中的数据发到内部对象中的数据发到JSP页面页面 指定的服务器指定的服务器的组件的组件(JavaBeans组件,组件,Servlet或者或者Enterprise bean),组件收到这些数据以后,可能将这些数据保存到数,组件收到这些数据以后,可能将这些数据保存到数据库或者其他地方据库或者其他地方(这时,页面包含了定义好的格式和这时,页面包含了定义好的格式和从服务器端得到的数据从服务器端得到的数据)。然后,。然后,JSP引擎和引擎和Web服务服务器再发送一个整理好的完整页面给客户,客户通过浏器再发送一
8、个整理好的完整页面给客户,客户通过浏览器就可以看到的这个完整页面运行结果。客户和服览器就可以看到的这个完整页面运行结果。客户和服务器间的通信协议通常使用务器间的通信协议通常使用HTTP,当然也可以使用,当然也可以使用其他协议。其他协议。6第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) 要提交数据常需使用表单。表单常由三部分组成:要提交数据常需使用表单。表单常由三部分组成:标签标签、输入方法和发送数据到服务器的提交按钮。输入方法和发送数据到服务器的提交按钮。标识的主要作用是设定表单的起止位置并指定处理表单标识的主要作用是设定表单的起止位置并指定处理表单数据程序的
9、数据程序的URLURL地址以及表单数据的提交方法,其语法如下:地址以及表单数据的提交方法,其语法如下:form action=action method= name=name1 7第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) request对象可以使用对象可以使用getParameter(String s)方法获方法获取该表单通过取该表单通过text提交的信息,比如:提交的信息,比如: request.getParameter(boy); 8第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) 4.1.1 获取客户提交的信息获取客
10、户提交的信息Example4_1.jsp 9第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) tree. jsp 获取文本框提交的信息获取文本框提交的信息: 获取按钮的名字:获取按钮的名字: 10第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) 在例在例Example4_2.jsp页面通过表单向自己提交一个正数,页面通过表单向自己提交一个正数,然后计算这个数的平方根。表单中的然后计算这个数的平方根。表单中的action请求的页面,如请求的页面,如果是当前页面,可以用双引号果是当前页面,可以用双引号: 代替当前页面,注意双引代替当前
11、页面,注意双引号中不能含有空格。号中不能含有空格。 Example4_2.jsp 11第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) 4.1.2 处理汉字信息处理汉字信息 当用当用request对象获取客户提交的汉字字符时,会出现乱对象获取客户提交的汉字字符时,会出现乱码问题,所以对含有汉字字符的信息必须进行特殊的处理方式。码问题,所以对含有汉字字符的信息必须进行特殊的处理方式。 首先,将获取的字符串用首先,将获取的字符串用ISO-8859-1进行编码,并将编码进行编码,并将编码存放到一个字节数组中,然后再将这个数组转化为字符串对象存放到一个字节数组中,然后再
12、将这个数组转化为字符串对象即可。即可。 如下列所示:如下列所示: String str=request.getParameter(girl); byte b =str. getBytes (IS0-8859-1); str=new String(b);12第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) 通过上述过程,提交的任何信息通过上述过程,提交的任何信息(无论是汉字字符或西无论是汉字字符或西欧字符欧字符)都能正确地显示。都能正确地显示。 下面的例子下面的例子3对例子对例子1按上述办法做了改动,并将按钮上按上述办法做了改动,并将按钮上的字变成汉字,在文本框里
13、输入的字变成汉字,在文本框里输入“苹果:苹果:apple:12斤斤5$”,然然后提交给后提交给tree.jsp。13第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) Example4_3.jsp 14第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) tree.jsp 获取文本框提交的信息获取文本框提交的信息: 获取按钮的名字获取按钮的名字: 15第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) 4.1.3 常用方法举例常用方法举例 当客户访问一个页面时,会提交一个当客户访问一个页面时,会提交一个HT
14、TP请求给服务器请求给服务器的的JSP引擎,这个请求包括一个请求行、引擎,这个请求包括一个请求行、http头和信息体,例如:头和信息体,例如: post/tree2.j sp/HTTP. 1.1 host: localhost: 8080 accept-encoding- gzip, deflate 其中首行叫请求行,规定了向访问的页面请求提交信息的其中首行叫请求行,规定了向访问的页面请求提交信息的方式,如方式,如post、get等方式,以及请求的页面的文件名字和使用等方式,以及请求的页面的文件名字和使用的通信协议。的通信协议。16第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础
15、教程(第第2版版) 第第2、3行分别是两个头行分别是两个头(Header),其中,其中host、accept-encoding被称为头名字,而被称为头名字,而localhost:8080以及以及gzip、deflate分别是它们的值,这里分别是它们的值,这里host的值是的值是tree2扣扣p的地址。上面的请的地址。上面的请求有求有2个头个头host和和accept-encoding,一个典型的请求通常包含,一个典型的请求通常包含很多的头,有些头是标准的,有些和特定的浏览器有关。很多的头,有些头是标准的,有些和特定的浏览器有关。 一个请求还包含信息体,即一个请求还包含信息体,即HTML标记组成
16、的部分,也标记组成的部分,也可能包括各式各样用于提交可能包括各式各样用于提交 信息的表单等,如:信息的表单等,如: 17第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) 可以使用可以使用JSP引擎的内置对象引擎的内置对象request对象来获取客户提交的信息,说明如下:对象来获取客户提交的信息,说明如下:(1)getProtocol() 获取客户向服务器提交信息所使用的通信协议,比如获取客户向服务器提交信息所使用的通信协议,比如http/1.1等。等。(2)getServletPath() 获取客户请求的获取客户请求的JSP页面文件的目录。页面文件的目录。(3)
17、getContentLength() 获取客户提交的整个信息的长度。获取客户提交的整个信息的长度。(4)getMethod() 获取客户提交信息的方式,比如获取客户提交信息的方式,比如post或或get。(5)getHeader(String s) 获取获取HTTP头文件中由参数头文件中由参数s指定的头名字的值。指定的头名字的值。(6)getHeaderNames() 获取头名字的一个枚举。获取头名字的一个枚举。(7)getHeaders(String s) 获取头文件中指定头名字的全部值的一个枚举。获取头文件中指定头名字的全部值的一个枚举。(8)getRemoteAddr() 获取客户的获取
18、客户的IP地址。地址。(9)getRemoteHost() 获取客户机的名称获取客户机的名称(如果获取不到,就获取如果获取不到,就获取IP地址地址)o(10)getServerName() 获取服务器的名称。获取服务器的名称。(11)getServerPort() 获取服务器的端口号。获取服务器的端口号。(12)getParameterNames() 获取客户提交的信息体部分中获取客户提交的信息体部分中name参数值的一个参数值的一个枚举。枚举。18第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) Example4_4.jspExample4_4.jsptree
19、2.jsptree2.jsp19第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) 4.1.4 使用使用Tag文件处理有关数据文件处理有关数据 Tag文件可以实现代码的复用,这些代码可能是许多文件可以实现代码的复用,这些代码可能是许多JSP页面部需要的。因此我们应当尽量将数据的处理让页面部需要的。因此我们应当尽量将数据的处理让Tag文件去文件去完成,完成,JSP页面负责使用页面负责使用request对象获取数据,然后使用对象获取数据,然后使用Tag标记调用标记调用Tag文件,并将必要的数据传递给文件,并将必要的数据传递给Tag文件。文件。Tag文件文件负责处理数据
20、,根据需要将处理结果显示给用户或返回给调用负责处理数据,根据需要将处理结果显示给用户或返回给调用它的它的JSP页面。页面。 在下面的例子在下面的例子5中,用户通过中,用户通过Example4_5.jsp中的表单将中的表单将三角形三边的长度提交给三角形三边的长度提交给get.jsp,get.jsp调用调用Tag文件文件Triangle.mg计算三角形的面积,计算三角形的面积,Triangle.tag将计算结果返回将计算结果返回给给get.jsp页面。页面。20第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) Example4_5.jspExample4_5.jsp
21、get.jspget.jspTriangle.tagTriangle.tag21第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) 4.1.5 处理处理HTML标记标记Example4-6.jspanswer.jspExample4-7.jspSum.jspExample4-8.jspExample4-9.jspshow.jsp22第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) 4.2 response对象对象 当用户访问一个服务器的页面时,会提交一个当用户访问一个服务器的页面时,会提交一个HTTP请求,请求,服务器收到请求后,返
22、回服务器收到请求后,返回HTTP响应。响应和请求类似,也有响应。响应和请求类似,也有某种结构。每个响应都由状态行开始,可以包含几个头及可能某种结构。每个响应都由状态行开始,可以包含几个头及可能的信息体的信息体(网页的结果输出部分网页的结果输出部分)。 前面学习了用前面学习了用request对象获取用户请求提交的信息,与对象获取用户请求提交的信息,与request对象相对应的对象是对象相对应的对象是response对象。可以用对象。可以用response对对象对用户的请求做出动态响应,向客户端发送数据。比如,当象对用户的请求做出动态响应,向客户端发送数据。比如,当一个用户请求访问一个一个用户请求
23、访问一个JSP页面时,该页面用页面时,该页面用page指令设置页指令设置页面的面的contentType属性的值是属性的值是text/html,那么,那么JSP引擎将按照这引擎将按照这种属性值响应用户对页面的请求,将页面的静态部分返回给用种属性值响应用户对页面的请求,将页面的静态部分返回给用户。如果想动态地改变户。如果想动态地改变contentType的属性值就需要用的属性值就需要用response对象改变页面的这个属性的值,做出动态的响应。对象改变页面的这个属性的值,做出动态的响应。23第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) requestreque
24、st对象是使用非常频繁的对象之一,然而对象是使用非常频繁的对象之一,然而requestrequest对象功能的实现离不开对象功能的实现离不开responseresponse对象的支持,对象的支持,requestrequest对象和对象和responseresponse对象的结合可以使对象的结合可以使JSPJSP更好地更好地实现客户端与服务器端的信息交互,下图显示了客户实现客户端与服务器端的信息交互,下图显示了客户端与服务器端信息交互的流程。端与服务器端信息交互的流程。24第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) 4.2.1 动态响应动态响应content
25、Type属性属性 当一个用户请求访问一个当一个用户请求访问一个JSP页面时,如果该页面用页面时,如果该页面用page指令设置页面的指令设置页面的contentType属性的值是属性的值是text/html,那么,那么JSP引引擎将按着这种属性值做出响应,将页面的静态部分返回给用户。擎将按着这种属性值做出响应,将页面的静态部分返回给用户。由于由于page指令只能为指令只能为contentType属性指定一个值来决定响应的属性指定一个值来决定响应的MIME类型,如果想动态地改变这个属性的值来响应用户,就类型,如果想动态地改变这个属性的值来响应用户,就需要使用需要使用response对象的对象的se
26、tContentType(String s)方法来改变方法来改变contentType的属性值的属性值: public void setContentType(String s) 25第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) 在下面的例子在下面的例子10中,当用户单击按钮,选择将当前页面保中,当用户单击按钮,选择将当前页面保存为一个存为一个Word文档时,文档时,JSP页面动态地改变页面动态地改变contentType的属的属性值为性值为application/ms-word。这时,用户的浏览器会提示用户。这时,用户的浏览器会提示用户用用Ms-Word格
27、式来显示当前页面。格式来显示当前页面。Example4_10.jspExample4_11.jsp26第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) 4.2.2 response的的HTTP文件头文件头 response response对象可以使用方法对象可以使用方法 addHeader(StringaddHeader(String head, String value); head, String value);或方法或方法 setHeader(StringsetHeader(String head ,String value) head ,String
28、value) 动态添加新的响应头和头的值,并将这些头发送给动态添加新的响应头和头的值,并将这些头发送给用户的浏览器。如果添加的头已经存在,则先前的头用户的浏览器。如果添加的头已经存在,则先前的头被覆盖。被覆盖。 在下面的例子在下面的例子12中,中,response对象添加一个响应头对象添加一个响应头refresh,其头值是,其头值是5,那么用户收到这个头之后,那么用户收到这个头之后,5秒钟后将再次刷新秒钟后将再次刷新该页面,导致该网页每该页面,导致该网页每5秒刷新一次。秒刷新一次。27第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) Example4_12.js
29、p JSP Page 28第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) 4.2.3 response重定向重定向 在某些情况下,当响应用户时,需要将用户重新引导至另在某些情况下,当响应用户时,需要将用户重新引导至另一个页面。例如,如果用户输入的表单信息不完整,就会再次一个页面。例如,如果用户输入的表单信息不完整,就会再次被引导到该表单的输入页面。被引导到该表单的输入页面。 可以使用可以使用response对象的对象的sendRedirect(URL url)方法实现方法实现用户的重定向。用户的重定向。 在下面的例子在下面的例子13中,用户在中,用户在Exam
30、ple4_13.jsp页面填写表单页面填写表单提交给提交给tree.jsp页面,如果填写的表单不完整就会被重新定向到页面,如果填写的表单不完整就会被重新定向到Example4_13.jsp页面。页面。29第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) Example4 _13.jsp JSP Page 填写姓名:填写姓名: 30第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) tree.jsp 31第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) 4.2.4 response的状态行的状态行 当服
31、务器对用户请求进行响应时,它发送的首行称做状态行。当服务器对用户请求进行响应时,它发送的首行称做状态行。 状态行包括状态行包括3位数字的状态代码和对状态代码的描述位数字的状态代码和对状态代码的描述(称做原因短语称做原因短语)。下面列出了对下面列出了对5类状态代码的大概描述。类状态代码的大概描述。 1yy(1开头的开头的3位数位数):主要是实验性质的。主要是实验性质的。 2yy:用来表明请求成功的。例如,状态代码用来表明请求成功的。例如,状态代码200可以表明己成功取得可以表明己成功取得了请求的页面。了请求的页面。 3yy:用来表明在请求满足之前应采取进一步的行动。用来表明在请求满足之前应采取进
32、一步的行动。 4yy:当浏览器做出无法满足的请求时,返回该状态代码。例如当浏览器做出无法满足的请求时,返回该状态代码。例如404表表示请求的页面不存在。示请求的页面不存在。 5yy:用来表示服务器出现问题。例如,用来表示服务器出现问题。例如,500说明服务器内部发生错误。说明服务器内部发生错误。 我们一般不需要修改状态行,在出现问题时,服务器会自动响应,我们一般不需要修改状态行,在出现问题时,服务器会自动响应,发送相应的状态代码。我们也可以使用发送相应的状态代码。我们也可以使用response对象的对象的setStatus(int n)方法来增加状态行的内容。方法来增加状态行的内容。32第第4
33、 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) 在下面的例子在下面的例子14中,我们使用中,我们使用setStatus(int n)设置响应的状设置响应的状态行来防止本网站的态行来防止本网站的JSP页面被页面被“盗链盗链”。网站就是引擎下管。网站就是引擎下管理的一个理的一个Web服务目录,服务目录,“盗链盗链”就是指一个网站在其就是指一个网站在其JSP页页面中提供其他网站上资源的超链接。在例子面中提供其他网站上资源的超链接。在例子14中,中,other.jsp存存放在放在Web服务目录服务目录ch2中中(一个网站一个网站);sameWebOne.jsp和和sameW
34、ebTwo .jsp存放在同一服务目录存放在同一服务目录ch4中中(一个网站一个网站)。orther.jsp和和sameWebOne.jsp都提供了关于都提供了关于sameWebTwo.jsp的的超链接,超链接,sameWebTwo.jsp允许允许sameWebOne.jsp通过其中的超通过其中的超链接访问它,但不允许链接访问它,但不允许orther.jsp通过其中的超链接访问它通过其中的超链接访问它(因因为为orther.jsp和和sameWebOne.jsp不在同一个网站中不在同一个网站中)。33第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) sameWe
35、bTwo.jsp页面怎样实现自己被页面怎样实现自己被“盗链盗链”呢呢? sameWebTwo.jsp可以使用可以使用request对象调用方法对象调用方法: String mess=request.getHeader(referer); 获取请求当前页面的其他网站页面上的获取请求当前页面的其他网站页面上的URL表示,例如,表示,例如,如果请求当前如果请求当前sameWebTwo.jsp的页面是的页面是onher.jsp上的超链接,上的超链接,那么那么mess就是就是: http:/127.0.0.1:8080/ch3/orther.jsp 如果请求当前如果请求当前sameWebTwo.jsp的
36、页面是的页面是orther.jsp上的超链上的超链接,那么接,那么mess就是就是: http:/127.0.0.1:8080/ch4/sameWebOne.jsp34第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) 这样,我们就可以通过这样,我们就可以通过getHead方法返回的信息,决定方法返回的信息,决定是否允许其他页面通过超链接访问当前页面,如果不允许访问是否允许其他页面通过超链接访问当前页面,如果不允许访问当前页面,我们就使用当前页面,我们就使用response对象的对象的setStatus(int n)方法增方法增加加404状态行,告知请求不成功,其
37、他页面就会收到当前页面状态行,告知请求不成功,其他页面就会收到当前页面不可访问的信息。如果允许访问当前页面,就不必修改状态行,不可访问的信息。如果允许访问当前页面,就不必修改状态行,使用默认的状态行使用默认的状态行200(请求成功请求成功)即可。即可。35第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) orther.jsp 我是我是ch2服务目录中的页面服务目录中的页面 单击下面的超链接单击下面的超链接: 访问访问sameWebTwo.jsp 36第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) sameWebone.jsp 我
38、是我是ch4服务目录中的页面服务目录中的页面 单击下面的超链接单击下面的超链接: 访问访问sameWebTwo.jsp 37第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) sameWebTwo.jsp 欢迎访问本页面欢迎访问本页面! 您来自您来自: 38第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) 表表4.14.1是状态代码表。是状态代码表。39第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) 4.3 session对象对象 HTTP协议是一种无状态协议。一个用户向服务器发出请协议是一种无状态
39、协议。一个用户向服务器发出请求求(request),然后服务器返回响应,然后服务器返回响应(response),连接就被关闭了。,连接就被关闭了。在服务器端不保留连接的有关信息,因此当下一次连接时,服在服务器端不保留连接的有关信息,因此当下一次连接时,服务器已没有以前的连接信息了,无法判断这一次连接和以前的务器已没有以前的连接信息了,无法判断这一次连接和以前的连接是否属于同一个用户。因此,必须使用会话记录有关连接连接是否属于同一个用户。因此,必须使用会话记录有关连接的信息。的信息。 从一个用户打开浏览器连接到服务器的某个从一个用户打开浏览器连接到服务器的某个Web服务目录,服务目录,到用户关闭
40、浏览器离开服务器称做一个会话。当一个用户访问到用户关闭浏览器离开服务器称做一个会话。当一个用户访问一个服务器时,可能会在某个一个服务器时,可能会在某个Web服务目录中反复链接几个页服务目录中反复链接几个页面、反复刷新一个页面或不断地向一个页面提交信息等,服务面、反复刷新一个页面或不断地向一个页面提交信息等,服务器应当通过某种办法知道这是同一个用户,这就需要器应当通过某种办法知道这是同一个用户,这就需要session(会会话话)对象。对象。40第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) sessionsession对象的作用是记录每个客户端的访问状态,对象的
41、作用是记录每个客户端的访问状态,以便跟踪每个客户端的操作状态。以便跟踪每个客户端的操作状态。sessionsession对象被封对象被封装为装为javax.servlet.http.HttpSessionjavax.servlet.http.HttpSession接口,通过调接口,通过调用用pageContext.getSessionpageContext.getSession()()方法可以获取一个方法可以获取一个sessionsession对象。当客户端请求超过一个以上的对象。当客户端请求超过一个以上的JSPJSP程序程序网页时,网页时,sessionsession对象提供有保存请求时期对
42、象属性对象提供有保存请求时期对象属性的方法,所保存的对象在请求过程中都是有效的。的方法,所保存的对象在请求过程中都是有效的。 41第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) 4.3.1 session对象的对象的Id 当一个用户首次访问当一个用户首次访问Web服务目录中的一个服务目录中的一个JSP页面时,页面时,JSP引擎产生一个引擎产生一个session对象。这个对象。这个session对象调用相应的方对象调用相应的方法可以存储用户在访问各个页面期间提交的各种信息,比如姓法可以存储用户在访问各个页面期间提交的各种信息,比如姓名、号码等。这个名、号码等。这
43、个session对象被分配了一个对象被分配了一个String类型的类型的Id号,号,JSP引擎同时将这个引擎同时将这个Id号发送到客户端,存放在用户的号发送到客户端,存放在用户的Cookie中。这样,中。这样,session对象和用户之间就建立起一一对应的关系,对象和用户之间就建立起一一对应的关系,即每个用户都对应着一个即每个用户都对应着一个session对象对象(该用户的会话该用户的会话),不同用,不同用户的户的session对象互不相同,具有不同的对象互不相同,具有不同的Id号码。号码。42第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) JSP引擎为每个用
44、户启动一个线程,也就是说,引擎为每个用户启动一个线程,也就是说,JSP为为每个线程分配不同的每个线程分配不同的session对象。当用户再访问链接该对象。当用户再访问链接该Web服服务目录的其他页面时,或从该务目录的其他页面时,或从该Web服务目录连接到其他服务目录连接到其他Web服服务器再回到该务器再回到该Web服务目录时,服务目录时,JSP引擎不再分配给用户新的引擎不再分配给用户新的session对象,而是使用完全相同的一个,直到用户关闭浏览器对象,而是使用完全相同的一个,直到用户关闭浏览器或这个或这个session对象达到了最大生存时间,服务器端该用户的对象达到了最大生存时间,服务器端该
45、用户的session对象被取消,和用户的会话对应关系消失。当用户重新对象被取消,和用户的会话对应关系消失。当用户重新打开浏览器再连接到该服务目录时,服务器为该用户再创建一打开浏览器再连接到该服务目录时,服务器为该用户再创建一个新的个新的session对象。对象。 注意注意:同一个用户在不同的服务目录中的同一个用户在不同的服务目录中的session是互不相同的。是互不相同的。 43第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) 在下面的例子在下面的例子15中,用户在服务器的中,用户在服务器的Web服务目录服务目录ch4中中的三个页面的三个页面first.jsp、
46、secondjsp和和third.jsp之间进行链接,三个之间进行链接,三个页面的页面的session对象是完全相同的。对象是完全相同的。 其中,其中,first.jsp存放在存放在ch4中,中,second.jsp存放在存放在ch4的子目的子目录录two中,中,third.jsp存放在存放在ch4的子目录的子目录three 中。用户首先访问中。用户首先访问first.jsp页面,从这个页面再链接到页面,从这个页面再链接到second.jsp页面,然后从页面,然后从second.jsp再链接到再链接到third.jsp页面。页面。44第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基
47、础教程(第第2版版) first.jsp 我是我是first.jsp页面,输入你的姓名链接到页面,输入你的姓名链接到second.jsp % String id=session.getId(); out.println(您的您的session对象的对象的ID是是: +id) ; % 45第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) second.jsp 我是我是second.jsp页面页面 % String id=session.getId(); out.println(您的您的session对象的对象的ID是是: +id); % 单击超链接,链接到单击超链
48、接,链接到third.jsp的页面。的页面。 欢迎去欢迎去third.jsp页面页面! 46第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) third.jsp 我是我是third.jsp页面页面 % String id=session.getId(); out.println(您的您的session对象的对象的ID是是: +id); % 单击超链接,链接到单击超链接,链接到first.jsp的页面。的页面。 欢迎去欢迎去first.jsp页面页面! 47第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) 4.3.2 session
49、对象对象URL重写重写 session对象是否能和用户建立起一一对应关系依赖于用户对象是否能和用户建立起一一对应关系依赖于用户的浏览器是否支持的浏览器是否支持Cookie。如果客户端不支持。如果客户端不支持Cookie,那么用,那么用户在不同网页之间的户在不同网页之间的session对象可能是互不相同的,因为如果对象可能是互不相同的,因为如果服务器无法将服务器无法将Id存放到客户端,就不能建立存放到客户端,就不能建立session对象和用户对象和用户的一一对应关系。的一一对应关系。 48第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) 如果用户的浏览器不支持如果
50、用户的浏览器不支持Cookie,我们可以通过,我们可以通过URL重重写来实现写来实现session对象的唯一性。所谓对象的唯一性。所谓URL重写,就是当用户从重写,就是当用户从一个页面重新链接到另一个页面时,通过向这个新的一个页面重新链接到另一个页面时,通过向这个新的URL添加添加参数,把参数,把session对象的对象的Id传带过去,这样就可以保障用户在该传带过去,这样就可以保障用户在该网站各个页面中的网站各个页面中的session对象是完全相同的。可以使用对象是完全相同的。可以使用response对象调用对象调用encodeURL()或或encodeRedirectURL()方法实方法实现
51、现URL重写,比如,如果从重写,比如,如果从tom.jsp页面链接到页面链接到jerry页面,首先页面,首先实现实现URL重写重写: String str=response.encodeRedirectURL(jerry.jsp) ; 然后将链接目标写成然后将链接目标写成。 first.jspsecond.jspthird.jsp49第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) public Enumeration getAttributeName() session对象调用该方法产生一个枚举对象,该枚举对象使对象调用该方法产生一个枚举对象,该枚举对象使用用
52、nextElemets()遍历遍历session中的各个对象所对应的关键字。中的各个对象所对应的关键字。 public long getCreationTime() session对象调用该方法可以获取该对象创建的时间。单位对象调用该方法可以获取该对象创建的时间。单位是毫秒是毫秒(从从1970年年7月月1日午夜起至该对象创建时刻所走过的毫日午夜起至该对象创建时刻所走过的毫秒数秒数)。 public void removeAttribute(String key) 从当前从当前session对象中删除关键字是对象中删除关键字是key的对象。的对象。Example4_17.jspfirst.jsp
53、account.jsp50第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) 4.3.4在在Tag文件中使用文件中使用session对象对象 JSP页面通过调用页面通过调用Tag文件可以实现代码的复用,那么在文件可以实现代码的复用,那么在反复调用反复调用Tag文件时,文件时,Tag文件就可以对文件就可以对session对象中存储的对象中存储的数据进行处理,并将必要的结果返回给数据进行处理,并将必要的结果返回给JSP页面。页面。51第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) 例子例子18是个猜数字的小游戏。当用户访问服务器上的是
54、个猜数字的小游戏。当用户访问服务器上的Example4_18.jsp页面时,服务器随机分配给用户一个页面时,服务器随机分配给用户一个1到到100之之间的数字,然后将这个数字存在用户的间的数字,然后将这个数字存在用户的session对象中。用户在对象中。用户在Example4_18.jsp中单击超链接请求中单击超链接请求guess.jsp页面,页面,guess.jsp通通过调用一个过调用一个Tag文件判断用户的猜测是否正确。文件判断用户的猜测是否正确。Tag文件文件GuessTag.tag负责判断用户的猜测是否和负责判断用户的猜测是否和session对象中存放的对象中存放的那个数字相同,如果猜测
55、大于那个数字相同,如果猜测大于session对象中存放的那个数字,对象中存放的那个数字,Tag文件就返回文件就返回“您猜大了您猜大了”;猜测小于;猜测小于session对象中存放的那对象中存放的那个数字,个数字,Tag文件就返回文件就返回“您猜小了您猜小了”;猜测等于;猜测等于session对象中对象中存放的那个数字,存放的那个数字,Tag文件就返回文件就返回“您猜对了您猜对了”。用户刷新或。用户刷新或重新返回重新返回Example4_18.isp页面可获得一个随机数。页面可获得一个随机数。 Example4_18.ispguess.jspGuessTag.tag52第第4 4章章 JSPJS
56、P内置对象内置对象JSP基础教程基础教程(第第2版版) 4.3.3 session对象存储数据对象存储数据session对象驻留在服务器端,该对象调用某些方法保存用户对象驻留在服务器端,该对象调用某些方法保存用户在访问某个在访问某个web服务目录期间的有关数据。服务目录期间的有关数据。session对象使用对象使用下列方法处理数据。下列方法处理数据。 public void setAttribute(String key,object obj) session对象类似于散列表,可以调用该方法将参数对象类似于散列表,可以调用该方法将参数Object指定的对象指定的对象obj添加到添加到sessi
57、on对象中,并为添加的对象指定了对象中,并为添加的对象指定了一个索引关键字。如果添加的两个对象的关键字相同,则先一个索引关键字。如果添加的两个对象的关键字相同,则先前添加的对象被清除。前添加的对象被清除。 public Object getAttribute(String key) 获取获取session对象中含有的关键字是对象中含有的关键字是key的对象。由于任何对的对象。由于任何对象都可以添加到象都可以添加到session对象中,因此用该方法取回对象时,对象中,因此用该方法取回对象时,应强制转化为原来的类型。应强制转化为原来的类型。 53第第4 4章章 JSPJSP内置对象内置对象JSP基
58、础教程基础教程(第第2版版) 4.3.5 session对象的生存期限对象的生存期限 一个用户在某个一个用户在某个web服务目录的服务目录的session对象的生存期限依赖对象的生存期限依赖于用户是否关闭浏览器,依赖于于用户是否关闭浏览器,依赖于session对象是否调用对象是否调用invalidate()方法使得方法使得session无效或无效或session对象达到了设置的最长的对象达到了设置的最长的“发呆发呆”状态时间。如果用户关闭浏览器,那么用户的状态时间。如果用户关闭浏览器,那么用户的session消失。消失。 如果用户长时间不关闭浏览器,用户的如果用户长时间不关闭浏览器,用户的se
59、ssion也可能消失,也可能消失,这是因为这是因为Tomcat服务器允许用户最长的服务器允许用户最长的“发呆发呆”状态时间为状态时间为30分钟,所谓分钟,所谓“发呆发呆”状态时问是指用户对某个状态时问是指用户对某个Web服务目录发出服务目录发出的两次请求之问的间隔时问。比如,用户对某个的两次请求之问的间隔时问。比如,用户对某个Web服务目录下服务目录下的的JSP页面发出请求,并得到响应,如果用户不再对该页面发出请求,并得到响应,如果用户不再对该Web服务服务目录发出请求目录发出请求(可能去请求其他的可能去请求其他的Web服务目录服务目录),那么用户对该,那么用户对该Web服务目录进入服务目录进
60、入“发呆发呆”状态,直到用户再次请求该状态,直到用户再次请求该Web服务服务目录时,目录时,“发呆发呆”状态结束。状态结束。54第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) 可以修改可以修改Tomcat服务器下的服务器下的web.xml,重新设置各个,重新设置各个Web服务目录下服务目录下session对象的最长对象的最长“发呆发呆”时间。打开时间。打开Tomcat安装安装目录中目录中conf文件下的配置文件文件下的配置文件web.xml,找到,找到 30 将其中的将其中的30修改成所要求的值即可修改成所要求的值即可(单位为分钟单位为分钟),如果时,如果时间
61、修改为负数,发呆时间不受限制。间修改为负数,发呆时间不受限制。 session对象可以使用下列方法获取或设置和生存时间有关对象可以使用下列方法获取或设置和生存时间有关的信息。的信息。55第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) public long getCreationTime() 获取获取session创建的时问,单位是毫秒创建的时问,单位是毫秒(GMT时间,时间,1970年年7月月1日午夜起至日午夜起至session创建时刻所走过的毫秒数创建时刻所走过的毫秒数)。 public long getLastAccessedTime() 获取获取ses
62、sion最后一次被操作的时间,单位是毫秒。最后一次被操作的时间,单位是毫秒。 public int getMaxInactiveInterval() 获取获取session最长的最长的“发呆发呆”时问时问(单位是秒单位是秒)。 public void setMaxInactiveInterval(int interval) 设置设置session最长的最长的“发呆发呆”时间时间(单位是秒单位是秒)。 public boolean isNew() 判断判断session是否是一个新建的对象。是否是一个新建的对象。 invalidate() 使使session无效。无效。 56第第4 4章章 JS
63、PJSP内置对象内置对象JSP基础教程基础教程(第第2版版) Example4_19.jspExample4_19.jsp57第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) 在第在第2章讲述过一个计数器的例子章讲述过一个计数器的例子(例子例子2),但那个例子,但那个例子并不能限制用户通过不断地刷新页面来增加计数器的计数。并不能限制用户通过不断地刷新页面来增加计数器的计数。所谓计数器就是记录某个所谓计数器就是记录某个Web服务目录服务目录(通常所说的网站通常所说的网站)被被访问的次数,但需要限制用户通过不断地刷新页面或再次访访问的次数,但需要限制用户通过不断地刷
64、新页面或再次访问该问该Web服务目录其他的页面来增加计数器的计数。服务目录其他的页面来增加计数器的计数。 使用使用session实现计数器的步骤是实现计数器的步骤是:当一个用户请求当一个用户请求Web服务服务目录下的任何一个目录下的任何一个JSP页面时,首先检查该用户的页面时,首先检查该用户的session对对象中是否已经有计数,如果没有计数,立刻将当前的计数增象中是否已经有计数,如果没有计数,立刻将当前的计数增1,并存到用户的,并存到用户的session中。中。 4.3.6计数器计数器58第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) 在下面的例子在下面的例
65、子2020中,中,WebWeb服务目录服务目录ch4ch4有两个有两个JSPJSP页页面面: :one.jspone.jsp、two.jsptwo.jsp,还有一个,还有一个tagtag文件文件: :Count.tagCount.tag。count.tagcount.tag文件负责计数。文件负责计数。one.jspone.jsp、two.jsptwo.jsp中使用中使用Count.tagCount.tag实现计数。用户首次请求实现计数。用户首次请求one.jspone.jsp和和two.isptwo.isp中的任何一个,都会使得网站的计数增中的任何一个,都会使得网站的计数增l l。59第第4
66、4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) 4.4 Out对象对象 out对象是一个输出流,用来向客户端输出数据。在前面的许多例子里对象是一个输出流,用来向客户端输出数据。在前面的许多例子里曾多次使用曾多次使用out对象进行数据的输出。对象进行数据的输出。out对象可调用如下的方法用于各种数对象可调用如下的方法用于各种数据的输出。例如据的输出。例如:out.print(Boolean),out.println(Boolean) 用于输出一个布尔值。用于输出一个布尔值。out.print(char),out.println(char) 输出一个字符。输出一个字符。o
67、ut.print(double),out.println(double) 输出一个双精度的浮点数。输出一个双精度的浮点数。out.print(float),out.println(float) 用于输出一个单精度的浮点数。用于输出一个单精度的浮点数。out.prInt(long),out.println(long) 输出一个长整型数据。输出一个长整型数据。out.prInt(String),out.println(String) 输出一个字符串对象的内容。输出一个字符串对象的内容。out.newLine() 输出一个换行符。输出一个换行符。 out.flush() 输出缓冲区里的内容。输出缓冲
68、区里的内容。 out.close() 关闭流。关闭流。 60第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) Example4_21.jspExample4_21.jsp61第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) 4.5 application对象对象 当一个用户第一次访问当一个用户第一次访问Web服务目录上的一个服务目录上的一个JSP页面页面时,时,JSP引擎创建一个和该用户相对应的引擎创建一个和该用户相对应的sgssion对象,而且对象,而且不同用户的不同用户的session对象是互不相同的。当用户在所访问的对象是互
69、不相同的。当用户在所访问的Web服务目录的各个页面之间浏览时,这个服务目录的各个页面之间浏览时,这个session对象都是对象都是同一个,直到用户关闭浏览器或同一个,直到用户关闭浏览器或session对象达到了最长的生对象达到了最长的生命期限,这个命期限,这个session对象才被取消。与对象才被取消。与session对象不同的是对象不同的是application对象。对象。62第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) Tomcat服务器启动后,就产生了这个服务器启动后,就产生了这个application对象。对象。当一个用户访问当一个用户访问Web服务
70、目录上的一个服务目录上的一个JSP页面时,页面时,JSP引擎引擎为该用户分配这个为该用户分配这个application对象,当用户在所访问的对象,当用户在所访问的Web服务目录的各个页面之问浏览时,这个服务目录的各个页面之问浏览时,这个application对象都是对象都是同一个,直到同一个,直到Tomcat服务器关闭,这个服务器关闭,这个application对象才被对象才被取消。与取消。与session对象不同的是,所有用户在同一对象不同的是,所有用户在同一Web服务目服务目录中的录中的application对象是相同的一个,即每个对象是相同的一个,即每个Web服务目录服务目录下的下的ap
71、plication对象被访问该服务目录的所有的用户共享。对象被访问该服务目录的所有的用户共享。需要注意的是,不同需要注意的是,不同Web服务目录下的服务目录下的application是不相同是不相同的。的。63第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) 4.5.1 application对象的常用方法对象的常用方法 public void setAttribute(String key,Object obj) public Object getAttribute(String key) public Enumeration getAttributeName
72、s() public void removeAttribute(String key) public String getServletInfo()64第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) 4.5.2 用用application制作留言板制作留言板 用户通过用户通过submit.jsp页面向页面向messagePane.jsp页面提交姓页面提交姓名、留言标题和留言内容,名、留言标题和留言内容,messagePane.jsp页面获取这些内页面获取这些内容后,用同步方法将这些内容添加到一个向量中,然后将这容后,用同步方法将这些内容添加到一个向量中,然后将
73、这个向量再添加到个向量再添加到application对象中。当用户单击查看留言板时,对象中。当用户单击查看留言板时,showMessage.jsp页面负责显示所有用户的留言内容,即从页面负责显示所有用户的留言内容,即从application对象中取出向量,然后遍历向量中存储的信息。对象中取出向量,然后遍历向量中存储的信息。 65第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) submit.jspmessagePane.jspshowMessage.jsp66第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) 4.6 PageCon
74、text对象对象PageContextPageContext对象的作用是取得任何范围的参数,对象的作用是取得任何范围的参数,通过通过PageContextPageContext对象可以获取对象可以获取JSPJSP页面的页面的outout、requestrequest、responseresponse、sessionsession、applicationapplication等对象,等对象,重新定向客户的请求等。重新定向客户的请求等。67第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) 4.7 config对象对象configconfig对象的主要作用是取得服务器
75、的配置信息。对象的主要作用是取得服务器的配置信息。configconfig对象被封装为对象被封装为javax.servletConfigjavax.servletConfig接口,通接口,通过过pageContext.getServletConfigpageContext.getServletConfig()()方法可以获取一方法可以获取一个个configconfig对象。对象。configconfig提供存取提供存取servletservlet class class初始初始化参数以及有关化参数以及有关serverserver环境信息的环境信息的ServletContextServletCo
76、ntext对对象。象。68第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) 4.8 Page对象对象pagepage对象的实质就是对象的实质就是java.lang.Objectjava.lang.Object,它是,它是java.lang.Objectjava.lang.Object类的一个实例。类的一个实例。pagepage对象代表对象代表JSPJSP本身,更确切的说,它是代表本身,更确切的说,它是代表JSPJSP被转译后的被转译后的ServletServlet,它可以调用,它可以调用ServletServlet类定义的方法,作用和类定义的方法,作用和Java
77、Java中中的的thisthis一样。一样。 69第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) 4.9 Exception对象对象exceptionexception对象的作用是显示异常信息,它是对象的作用是显示异常信息,它是java.lang.Throwablejava.lang.Throwable的一个实例,只有在包含的一个实例,只有在包含isErrorPageisErrorPage=true=true的页面中才可以被使用,在一般的页面中才可以被使用,在一般的的JSPJSP内容中使用该对象将无法编译内容中使用该对象将无法编译JSPJSP文件。文件。在在J
78、SPJSP页面编写过程中常会出现如下几种错误,读页面编写过程中常会出现如下几种错误,读者应该注意。者应该注意。l空指针错误:空指针错误:java.lang.NullPointerExceptionjava.lang.NullPointerExceptionl格式化数字错误:格式化数字错误:java.lang.NumberFormatExceptionjava.lang.NumberFormatExceptionl类定义未找到错误:类定义未找到错误:java.lang.NoClassDefFoundErrorjava.lang.NoClassDefFoundErrorlJAVAJAVA错误:错误
79、:java.lang.Errorjava.lang.Error 70第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) 小结小结本章主要介绍了本章主要介绍了JSPJSP中的中的9 9个内建对象,分别为个内建对象,分别为requestrequest、responseresponse、outout、sessionsession、applicationapplication、configconfig、pageContextpageContext、pagepage和和exceptionexception,其中,其中requestrequest对象主要是负责处理客户请求,请
80、求包括来对象主要是负责处理客户请求,请求包括来自自GET/POSTGET/POST请求的参数,请求的参数,responseresponse对象负责网页传回对象负责网页传回客户端的响应,客户端的响应,pageContextpageContext对象进行网页属性的管对象进行网页属性的管理,理,sessionsession对象进行与请求有关的会话,对象进行与请求有关的会话,applicationapplication对象为多个应用程序保存信息,多个客对象为多个应用程序保存信息,多个客户端共享一个户端共享一个applicationapplication对象,对象,outout对象用来传送相对象用来传送相应的输出流,应的输出流,configconfig对象进行对象进行servletservlet的构架对象,的构架对象,pagepage对象表示对象表示JSPJSP网页本身,网页本身,exceptionexception对象负责处理对象负责处理网页出现的错误。网页出现的错误。71第第4 4章章 JSPJSP内置对象内置对象JSP基础教程基础教程(第第2版版) 谢谢! 结束72第第4 4章章 JSPJSP内置对象内置对象