JSP开发案例教程
上QQ阅读APP看书,第一时间看更新

3.3 JSP指令元素

JSP指令元素主要包括:page指令、include指令及taglib指令。它们都是JSP中的编译指令。编译指令就是告诉JSP的引擎,如何处理其他的JSP网页。JSP编译指令的语法格式如下:

<%@指令名属性="属性值"%>

下面分别介绍JSP中的三种编译指令:page指令、include指令及taglib指令。

指令

3.3.1 page指令

功能:定义整个JSP页面的属性及其属性值。

语法:<%@ page属性1=值 属性2=值…%>

该指令所包含属性如下:

➢language:定义JSP网页所使用的脚本语言的种类,其默认值是Java。

➢import:指定JSP网页中需要导入的Java包列表。

➢extends:说明JSP编译时需要加入的Java类的名字。

➢session:设置此网页是否要加入到一个session中(其值为布尔类型)。如果为true,则session是有用的;否则,就不能使用session对象以及定义了scope=session的<jsp:use-Bean>元素,这样的使用会导致错误。其默认值是true。

➢buffer:设置此网页输出时所使用缓冲区的大小。buffer的值可以为none,也可以是一个数值。其默认值是8KB。

➢autoFlush:指定当缓冲区满时是否自动输出缓冲区的数据(其值为布尔类型)。如果为true,输出正常,否则当缓冲区满时将抛出异常。其默认值是true。注意,如果把buffer的值设置为none,那么把autoFlush的值设置为false就是非法的。

➢info:指明网页的说明信息,可使用Servlet类的getServletInfo方法获取此信息。

➢isThreadSafe:设置JSP文件是否能多线程访问,其默认值是true。如果为true,JSP能够同时处理多个用户的请求,否则JSP一次只能处理一个用户请求。

➢isErrorPage:设置此网页是否是另一个JSP页面的错误信息的提示页面。如果为true,就能使用exception对象,否则exception对象不可用。

➢errorPage:设置JSP网页发生错误时的信息提示页面的URL路径。该属性的值必须是一个用“URL路径”来描述的JSP页面。

➢contentType:定义了JSP网页所使用的字符集及JSP响应的MIME类型。默认MIME类型是text/html,默认字符集是ISO-8859-1。

注意:page指令作用于整个JSP页面,以及由include指令和<jsp:include>包含进来的静态文件中,但不能用于动态包含文件。可以在一个页面上使用多个page指令,但是其中的属性只能使用一次(import属性例外)。page指令可以放在JSP文件的任何地方,它的作用范围都是JSP页面,但好的编程习惯一般把它放在文件的顶部。

如何使用page指令。下面代码的运行结果如图3-3所示,源码如下:

978-7-111-44234-9-Chapter03-6.jpg

图3-3 page指令运行结果

978-7-111-44234-9-Chapter03-7.jpg

3.3.2 include指令

功能:指定在JSP文件中包含的一个静态的文件,即在JSP文件被编译时需要插入的文本或代码。

语法:<%@ include file="文件名称"%>

当使用include指令时,包含文件是静态包含,即这个被包含的文件将被插入到JSP文件中去。所包含的文件可以是JSP文件、HTML文件、文本文件甚至一段Java代码。但是在所包含的文件中不能使用“<html></html>”,“<body></body>”标记,因为这将会影响到原有的JSP文件中所使用的相同标记。如果所包含的是一个JSP文件,则该文件将会执行。

注意:属性file指出了被包含文件的路径,这个路径一般指相对路径,不需要什么端口、协议和域名。

如何使用include指令。下面代码运行结果如图3-4所示,其源码如下:

978-7-111-44234-9-Chapter03-8.jpg

现在是北京时间:

978-7-111-44234-9-Chapter03-9.jpg

其中nowtime.jsp的源码如下:

978-7-111-44234-9-Chapter03-10.jpg

978-7-111-44234-9-Chapter03-11.jpg

图3-4 include指令运行例子

3.3.3 taglib指令

功能:声明JSP文件使用了自定义的标签,同时引用标签库,也指定了它们的标签的前缀。

语法:<%@ taglib uri="URIToTagLibrary"prefix="tagPrefix"%>

属性说明如下:

➢uri:解释为统一资源标记符,根据标签的前缀对自定义的标签进行唯一的命名。URI可以是URL(Uniform Resource Locator)、URN(Uniform Resource Name)或一个路径(相对或绝对)。

➢prefix:在自定义标签之前的前缀,如<public:moon>中的public,如果这里不写public,则标签moon的定义是非法的。

注意:jsp、jspx、java、javax、servlet、sun和sunw等保留字不允许作自定义标签的前缀。用户必须在使用自定义标签之前使用taglib指令,而且可以在一个页面中多次使用,但是前缀只能使用一次。