JSP指令–页面,包含和taglib示例
JSP指令用于为容器提供特殊指令,以将JSP转换为Servlet代码。
JSP指令位于" <%@%>"之间。
JSP指令
JSP提供了三个指令供我们使用。
- JSP页面指令
- JSP包含指令
- JSP taglib指令
每个jsp指令都有一组属性来提供特定类型的指令。
所以通常一个JSP指令看起来像
<%@ directive attribute="value" %>
如果您直接登陆其中则可能需要查看《 JSP教程》和《 JSP隐式对象》。
JSP页面指令
page伪指令提供了应用于整个JSP页面的属性。
page指令具有许多我们现在要看的属性。
我们可以在单个页面指令中定义多个属性,也可以在单个JSP页面中具有多个页面指令。
import属性:这是最常用的页面指令属性之一。
它用于指示容器在生成Servlet代码时导入其他Java类,接口,枚举等。
这类似于java类,接口中的import语句。
导入页面指令用法的一个示例是:contentType属性:此属性用于设置响应的内容类型和字符集。
contentType属性的默认值为" text/html"; charset = ISO-8859-1"。
我们可以像下面这样使用它。pageEncoding属性:我们可以使用此page指令属性设置响应编码类型,其默认值为" ISO-8859-1"。
extend属性:此属性用于定义生成的servlet代码的超类。
这很少使用,如果扩展了HttpServlet并覆盖了其中的某些实现,则可以使用它。
例如;info属性:我们可以使用此属性来设置servlet描述,并可以使用Servlet接口getServletInfo()方法检索它。
例如;buffer属性:我们知道JspWriter具有缓冲功能,我们可以使用此属性设置缓冲区大小(以KB为单位),以处理JSP页面生成的输出。
缓冲区属性的默认值为8kb。
我们可以将16 KB缓冲区大小定义为:语言属性:语言属性已添加,以指定JSP页面中使用的脚本语言。
默认值为" java",这是它唯一的值。
可能在将来,JSP也提供支持以包括其他脚本语言,例如C++或者PHP。isELIgnored属性:使用此页面指令属性,我们可以忽略JSP中的表达式语言(EL)。
其数据类型为Java Enum,默认值为false,因此默认情况下启用EL。
我们可以使用以下指令指示容器忽略EL;isThreadSafe属性:我们可以使用此属性在生成的servlet中实现SingleThreadModel接口。
一个枚举,默认值为true。
如果将其值设置为false,则生成的servlet将实现SingleThreadModel,最终我们将失去servlet多线程功能的所有优势。
您永远不要将其值设置为false。errorPage属性:此属性用于设置JSP的错误页面,如果JSP引发异常,则请求将重定向到此属性中定义的错误处理程序。
它的数据类型是URI。
例如;isErrorPage属性:此属性用于声明当前JSP页面是错误页面。
类型为Enum,默认值为false。
如果要为我们的应用程序创建错误处理程序JSP页面,则必须使用此属性让容器知道它是错误页面。
JSP隐式属性异常仅适用于错误页面JSP。
例如;autoFlush属性:autoFlush属性用于控制缓冲区的输出。
其默认值为true,并且在缓冲区已满时自动刷新输出。
如果将其设置为false,则不会自动刷新缓冲区,如果缓冲区已满,则将导致缓冲区溢出的异常。
当我们要确保完全发送或者不发送JSP响应时,可以使用此属性。
例如;session属性:默认情况下,JSP页面会创建一个会话,但有时我们不需要JSP页面中的会话。
我们可以使用此属性来指示编译器默认情况下不创建会话。
默认值为true,并创建会话。
要禁用会话创建,我们可以像下面这样使用它。trimDirectiveWhitespaces属性:此属性在JSP 2.1中添加,用于从JSP页面输出中去除多余的空白。
其默认值为false。
它有助于减少生成的代码大小,注意生成的servlet代码将此属性值保持为true和false。
当它为true时,您不会注意到out.write(" \ n")
。
JSP包含指令
JSP include指令用于将另一个文件的内容包含到当前JSP页面中。
包含的文件可以是HTML,JSP,文本文件等。
include指令对于创建用户视图的模板以及将页面分为页眉,页脚,侧边列部分非常有用。
我们可以在JSP页面中包括任何资源,如下所示。
<%@ page import="java.util.Date,java.util.List,java.io.*" %>
文件属性值应该是当前JSP页面中资源的相对URI。
JSP taglib指令
JSP taglib指令用于使用我们可以在JSP中使用的前缀定义标签库,我们将在JSP Custom Tags教程中研究更多细节。
我们可以定义JSP标签库,如下所示;
<%@ page contentType="text/html; charset=US-ASCII" %>
JSP标准标签库中使用了JSP taglib指令,请阅读JSTL教程。