在本章中,我们将介绍和学习JSP中的指令。这些指令向容器提供指示和说明,告诉容器如何处理JSP处理的请求和响应。
JSP指令影响servlet类的整体结构。它通常具有以下形式 -
<%@ directive attribute = "value" %>
指令可以有多个属性,可以将其列为键值对,并以逗号分隔。
@
符号和指令名称之间,以及最后一个属性和关闭%>
之间的空格是可选的。
JSP中有三种类型的指令标签 -
序号 | 指令 | 说明 |
---|---|---|
1 | <%@ page ... %> |
定义页面相关属性,如脚本语言,错误页面和缓冲要求。 |
2 | <%@ include ... %> |
在编译阶段包括文件。 |
3 | <%@ taglib ... %> |
声明页面中使用的包含自定义操作的标签库 |
page
指令用于向容器提供说明。这些说明涉及当前的JSP页面。可以在JSP页面的任何位置编写page
指令。按照惯例,page
指令被编码在JSP页面的顶部。
以下是page
指令的基本语法 -
<%@ page attribute = "value" %>
可以使用XML编写上述语法,如下所示:
<jsp:directive.page attribute = "value" />
属性
下表列出了与page
指令相关联的属性 -
序号 | 属性 | 说明 |
---|---|---|
1 | buffer |
指定输出流的缓冲模型。 |
2 | autoFlush |
控制servlet输出缓冲区的行为。 |
3 | contentType |
定义字符编码方案。 |
4 | errorPage |
定义另一个报告Java未检查运行时异常的JSP的URL。 |
5 | isErrorPage |
指示此JSP页面是否是由另一个JSP页面的errorPage 属性指定的URL。 |
6 | extends |
指定生成的servlet必须扩展的超类。 |
7 | import |
指定JSP中使用的包或类的列表,就像Java的import 语句一样。 |
8 | info |
定义可以使用servlet的getServletInfo() 方法访问的字符串。 |
9 | isThreadSafe |
定义生成的servlet的线程模型。 |
10 | language |
定义JSP页面中使用的编程语言。 |
11 | session |
指定JSP页面是否参与HTTP会话 |
12 | isELIgnored |
指定JSP页面中的EL表达式是否被忽略。 |
13 | isScriptingEnabled |
确定脚本元素是否被允许使用。 |
查看与page
指令相关所有上述属性的更多详细信息。请参考:http://www.zyiz.net/jsp/page_directive.html
include
指令用于在编译阶段包括一个文件。这个指令告诉容器在编译阶段将其他外部文件的内容合并到当前JSP文件中。可在JSP页面的任何位置使用include
指令进行编码。
本指令的一般用法形式如下:
<%@ include file = "relative url" >
include
指令中的文件名实际上是一个相对URL。如果只指定一个没有关联路径的文件名,那么JSP编译器会假定该文件与JSP在同一个目录中。
可以使用XML编写上述代码效果相同,如下所示:
<jsp:directive.include file = "relative url" />
有关include
指令的更多详细信息,请查看链接:include指令
JSP API允许自定义的JSP标签,如:HTML或XML标签,标签库是一组实现自定义行为的用户定义标签。
taglib
指令声明JSP页面使用一组自定义标签,标识库的位置,并提供了在JSP页面中标识自定义标签的方法。
taglib
指令遵循下面给出的语法 -
<%@ taglib uri="uri" prefix = "prefixOfTag" >
这里,uri
属性值解析为容器理解的位置,并且prefix
属性通知容器什么位置的标记是自定义操作。
可以使用XML编写上述语法,如下所示:
<jsp:directive.taglib uri = "uri" prefix = "prefixOfTag" />
有关taglib
指令的更多详细信息,请查看taglib指令。