欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > PPT文档下载
     

    第4章JSP内置对象(教学).ppt

    • 资源ID:2255949       资源大小:779.01KB        全文页数:72页
    • 资源格式: PPT        下载积分:8
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要8
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第4章JSP内置对象(教学).ppt

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

    注意事项

    本文(第4章JSP内置对象(教学).ppt)为本站会员(本田雅阁)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开