JSP指令–页面,包含和taglib示例

时间:2020-02-23 14:33:52  来源:igfitidea点击:

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教程。