JSP页面元素与内置对象

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第二讲JSP页面元素与内置对象内容提要•介绍JSP页面的结构•JSP的编译指令、操作指令和代码•重点介绍JSP常用的六大基本对象:–out对象、response对象、request对象、application对象、session对象和cookie对象。理解服务器端执行•所有HTML文件可以在资源管理器中双击执行•但是JSP文件必须先放到Web服务器中,然后通过HTTP的方式访问。因为文件内所有%%内代码是被Web服务器解释执行的。理解服务器端执行案例名称:理解服务器端执行程序名称:2-01.jsp%@pagelanguage=javacontentType=text/html;charset=GBK%%@pageimport=java.util.*%%Datednow=newDate();intdhours=dnow.getHours();intdminutes=dnow.getMinutes();intdseconds=dnow.getSeconds();out.print(服务器时间:+dhours+:+dminutes+:+dseconds);%SCRIPTLANGUAGE=JavaScriptvardnow=newDate();dhours=dnow.getHours();dminutes=dnow.getMinutes();dseconds=dnow.getSeconds();document.write(br浏览器时间:+dhours+:+dminutes+:+dseconds);/SCRIPT理解服务器端执行JSP页面结构•在一个JSP页面中,主要分为三种元素:编译指令、操作指令和JSP代码。–编译指令告诉JSP的解释引擎(比如:Tomcat),需要在编译时做什么动作,比如引入一个其它的类,设置JSP页面的使用什么语言编码等。–操作指令则是在JSP页面被请求时,动态执行的,比如可以根据某个条件动态跳转到另外一个页面。–JSP代码指的就是我们自己嵌入在JSP页面中的Java代码,这又分为两种:第一种是JSP页面中一些变量和方法的声明,在声明时,使用“!%”和“%”标记。另外一种,就是常用到的用“%”和“%”包含的JSP代码块:编译指令•可以通过一定的指令,让JSP容器采取必要的动作。–例如:可以指定一个专门的错误处理页面,当JSP页面出现错误时,可以由JSP容器自动地调用错误处理页面。page指令•page指令是针对当前页面的指令。page指令有“%@”和“%”字符串构成的标记符来指定。在标记符中是代码体,包括指令的类型和值。例如:“%@pageimport=”java.sql.*“%”指令告诉JSP容器将java.sql包中的所有类都引入当前的JSP页面。•常用的page指令标记有8个:–language、extends、import、errorPage、isErrorPage、、contentType、isThreadSafe和session。page指令•language设置JSP页面中用到的语言,默认值为“Java”,也是目前唯一有效的设定值。使用的语法是:“%@pagelanguage=”java“%”。•extends设定目前JSP页面要继承的父类。一般情况下不需要进行设置。在默认情况下,JSP页面的默认父类是HttpJspBase。例如:当前JSP页面要继承mypackage包下的myclass类,相应的声明语句为:“%@pageextends=”mypackage.myclass“%”。•import设置目前JSP页面中要用到的Java类,这些Java类可能是SunJDK中的类,也有可能是程序员自己定义的类。例如:“%@pageimport=java.sql.*,java.util.*%”。•有些类在默认情况下已经被加入到当前JSP页面,而不需要特殊声明,包括四个类:java.lang.*;、javax.servlet.*;、javax.servlet.jsp.*;和javax.servlet.http.*;。•errorPage用来设定当JSP页面出现异常(Exception)时,所要转向的页面。如果没有设定,则JSP容器会用默认的当前网页来显示出错信息。例如:“%@pageerrorPage=/error/error_page.jsp%”•isErrorPage用来设定当前的JSP页面是否作为传回错误页面的网页,默认值是“false”。如果设定为“true”,则JSP容器会在当前的页面中生成一个exception对象。使用errorPage指令捕获异常案例名称:JSP中Exception的捕捉程序名称:2-02.jsp%@pagelanguage=javaerrorPage=4-03.jspcontentType=text/html;charset=GBK%%intdividend=0;intdivisor=0;intresult=0;try{result=dividend/divisor;}catch(ArithmeticExceptionzz){thrownewArithmeticException(除数不能为零!);}%JSP中Exception的捕捉案例名称:JSP中Exception的捕捉程序名称:2-03.jsp%@pagelanguage=javaisErrorPage=truecontentType=text/html;charset=GBK%当前页面是:4-03.jspbr%out.print(exception.toString());%JSP中Exception的捕捉•contentType这个属性用来设定传回网页的文件格式和编码方式,一般使用“text/html;charset=GBK”。•isThreadSafe定义JSP容器执行JSP程序的方式,默认值为“true”,代表JSP容器会以多线程方式运行JSP页面。当设定值为“false”时,JSP容器会以单线程方式运行JSP页面。•session定义当前JSP页面中是否要用到session,默认值为“true”。include指令•include指令用来指定怎样把另一个文件包含到当前的JSP页面中,这个文件可以是普通的文本文件,也可以是一个JSP页面。例如:“%@includefile=”logo.htm“%”。•采用include指令,可以实现JSP页面的模块化,使JSP的开发和维护变得非常简单。使用include指令–案例名称:使用include指令–程序名称:2-04.jsp•%@includefile=“2-01.jsp%taglib指令•taglib指令允许页面使用标记扩展(定制标记)。它命名了标记库。在JSP页面里遇到定制的标记时,引擎将找到在标记库中的该标记,并且找到要实施的操作——实际上是执行Java代码。taglib指令的语法为:–%@tagliburi=”tagLibraryURI”prefix=”tagPrefix”%•其中:–uri:一个URI标识标记库描述器。一个标记库描述器用来唯一的命名一组定制的标记,并且告诉包容器如何处理特殊的标记–tagPrefix:定义一个prefix:tagname形式的字符串前缀,用于定义定制的标记。所保留的前缀为jsp、jspx、java、servlet、sun、sunw。操作指令•JSP编译指令是让JSP容器自动采取的动作,但对于Web开发人员,有些时候想要自己控制JSP页面的运行,这时可以采用JSP中的操作指令。•操作指令包括:–jsp:include指令、jsp:forward指令、jsp:param指令、jsp:useBean指令、jsp:setProperty指令和jsp:getProperty指令等。jsp:include指令•jsp:include标准动作用于在当前的JSP页面中加入静态和动态的资源。•语法格式为:–jsp:includepage=“test.htm”/–jsp:include指令必须以“/”结束,功能和include指令相同。jsp:forward指令•jsp:forward操作指令用于把当前的JSP页面转发到另一个页面上。•基本语法为:–“jsp:forwardpage=”test2.jsp“/”,–使用该功能时,浏览器的地址栏中地址不会发生任何变化。forward指令实现页面间的跳转案例名称:使用forward指令实现页面间的跳转程序名称:2-05.jspjsp:forwardpage=“2-01.jsp/jsp:param指令•使用jsp:param操作指令可以在执行jsp:forward操作动作时,追加参数,按照“名字/值”的方式进行传递。•jsp:param操作指令以标记“jsp:param”开始,以“/”结束。比如:“jsp:paramname=opervalue=add/”。可以将jsp:forward操作指令和jsp:param操作指令结合到一起来使用。JSP代码•JSP代码包括两种,–第一种是JSP页面中一些变量和方法的声明,在声明时,使用“!%”和“%”标记–另外一种,就是常用到的用“%”和“%”包含的JSP代码块变量和方法•在“%!”和“%”标记符号之间声明变量和方法,变量类型可以是Java语言允许的任何数据类型。•在JSP页面被编译执行的时候,整个页面被编译成一个类,这些变量是JSP页面类的成员变量。变量的声明和使用案例名称:变量的声明和使用程序名称:2-06.jsp%@pagecontentType=text/html;charset=GBK%%!inti=0;%%i++;out.print(i);%个人访问本站变量的声明和使用•也可以声明函数,一般会在函数前面加上synchronized关键字,功能是当前一个用户在执行该方法的时候,其他的用户必须等待,直到该用户完成操作。使用方法案例名称:函数的声明和使用程序名称:4-07.jsp%@pagecontentType=text/html;charset=GBK%%!intnumber=0;synchronizedvoidcountPeople(){number++;}%%countPeople();%您是第%out.print(number);%个访问本站的客户。代码块•可以在“%”和“%”之间插入Java程序片,一个JSP页面可以有许多程序片,这些代码块将被JSP服务器按照顺序执行。•在一个代码块中声明的变量是JSP页面的局部变量,只在当前页面中有效。代码块案例名称:代码块程序名称:2-08.jsp%@pagecontentType=text/html;charset=GBK%%inti=0;%%i++;out.print(i);%个人访问本站JSP隐含对象概述•JSP根据ServletAPI而提供了某些隐含对象。可以使用标准的变量来访问这些对象,并且不用编写任何额外的代码,就可以在JSP中自动使用到它。在JSP页面中可以获得的主要的7个隐含对象变量为:–out对象:功能是把信息回送到客户端的浏览器中。–response对象:功能是处理服务器端对客户端的一些响应。–request对象:功能是用来得到客户端的信息。–application对象:用来保存网站的一些全局变量。–session对象:用来保存单个用户访问时的一些信息。–cookie对象:将服务器端的一些信息写到客户端的浏览器中。–pageContext对象:提供了访问和放置页面中共享数据的方式。out对象•out对象是javax.servlet.jsp.JspWriter类的一个子类的对象,它的作用是把信息回送到客户端的浏览器中。在out对象中,最常用的方法就是print()和println()。在使用print(

1 / 62
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功