在本章中,我们将讨论JSP中的指令。这些指令为容器提供了指导和说明,告诉容器如何处理JSP处理的某些方面。
JSP-指令
JSP指令会影响Servlet类的整体结构。它通常具有以下形式:
<%@ 指令名称 attribute = "value" %>
指令可以具有许多属性,您可以将它们列出为键值对,并用逗号分隔。
@符号和指令名称之间以及最后一个属性和结束%>之间的空格是可有可不有的。
指令标记有三种类型:
序号 | 指令和说明 |
---|---|
1 | <%@ page … %>:定义与页面相关的属性,例如脚本语言,错误页面和缓冲要求。 |
2 | <%@ include … %>:在翻译阶段包含文件 |
3 | <%@ taglib … %>:声明页面中使用的包含自定义操作的标记库 |
JSP-page指令
page指令用于提供该页面到容器的说明。这些说明与当前的JSP页面有关。您可以在JSP页面的任何位置编写页面指令。按照约定,page指令在JSP页面的顶部进行编码。
以下是页面指令的基本语法:
<%@ 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语句对Java类所做的那样。 |
8 | info:定义一个可以用servlet的getServletInfo()方法访问的字符串。 |
9 | isThreadSafe:为生成的servlet定义线程模型。 |
10 | language:定义JSP页面中使用的编程语言。 |
11 | session:指定JSP页面是否参与HTTP会话 |
12 | isELIgnored:指定是否将忽略JSP页面内的EL表达式。 |
13 | isScriptingEnabled:确定是否允许使用脚本元素。 |
例:<%@ page language="java" contentType="text/html; charset=UTF-8" import="java.util.*" errorPage="error404.jsp"%>
后续会详细讲JSP的page指令的属性。
include指令
include指令用于包括在翻译阶段的文件。该指令告诉容器在转换阶段将其他外部文件的内容与当前JSP合并。您可以在JSP页面的任何位置编写include指令。
该指令的一般用法如下:
<%@ include file = "relative url" >
include指令中的文件名实际上是一个相对URL。如果仅指定没有关联路径的文件名,则JSP编译器将假定该文件与JSP位于同一目录中。
您可以编写与上述语法等效的XML,如下所示:
<jsp:directive.include file = "relative url" />
后续会详细讲JSP的include指令。
taglib指令
JavaServer Pages API允许您定义看起来像HTML或XML标记的自定义JSP标记,并且标记库是一组实现自定义行为的用户定义的标记。
该标签库指令声明JSP页面使用了一组自定义标签、标识库的位置,并且提供了用于识别你的JSP页面中的自定义标签。
taglib指令遵循以下给出的语法:
<%@ taglib uri="uri" prefix = "prefixOfTag" >
在这里,uri属性值解析为容器可以理解的位置,而prefix属性则通知容器标记的哪些位是自定义操作。
您可以编写与上述语法等效的XML,如下所示:
<jsp:directive.taglib uri = "uri" prefix = "prefixOfTag" />
后续会详细讲JSP的taglib指令。