JSP_Page指令,include指令和taglib指令

Posted 小企鹅推雪球!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSP_Page指令,include指令和taglib指令相关的知识,希望对你有一定的参考价值。

JSP_指令

  1. JSP指令向容器提供指示和说明,告诉容器如何处理JSP的请求和响应
  2. JSP指令的语法格式: <%@ directive attribute = "value" %>
  3. JSP指令可以有多个属性,并将属性列为键值对的形式,以逗号分隔
  4. @符号和指令名称之间,以及最后一个属性和关闭%> 之间的空格是可选的

JSP_三种指令类型

  1. <%@page ... %> :页面依赖属性,例如脚本语言,错误页面和缓冲要求
  2. <%@include file=""%> 包括在转换阶段的文件
  3. <%@include file=""%>声明了一个标签库,包含自定义动作,用在页面中

Page指令

  1. page指令用于向容器提供说明,这些说明涉及当前的JSP页面
  2. 可以在JSP页面的任何位置编写page指令,但是通常page指令被编码在JSP页面顶部
  3. page指令的语法:<%@ page attribute ="value" %> 或者 XML的形式:<jsp:directive.page attribute = "value" />

JSP_Page指令的buffer属性

  1. buffer属性指定服务器输出响应对象的缓冲特性,可以编辑none值来指定不使用缓冲,以便servlet输出立即被定向到响应对象
  2. 编写一个以KB为单位的最大缓冲区大小,这将指示servlet在写入响应之前写入缓冲区。
  3. 指示servlet将输出直接写入响应输出对象:<%@ page buffer = "none" %>
  4. 指示servlet将输出写入大小不小于64KB字节的缓冲区 :<%@ page buffer = "64kb" %>

JSP_Page指令的autoFlush属性

  1. autoFlush属性指定缓冲区输出是否在缓冲区填充时自动刷新,或者是否引发异常以指示缓冲区溢出。true(默认值)值表示自动缓冲区刷新,false值表示引发异常。
    2.当servlet的输出缓冲区已满时,以下指令会导致servlet抛出异常:<%@ page autoFlush = "false" %>
  2. 使servlet在完全输出时刷新输出缓冲区:<%@ page autoFlush = "true" %>
  3. buffer和autoFlush属性在page指令中进行编码: <%@ page buffer = "16kb" autoflush = "true" %>

JSP_Page指令的contentType属性

  1. contentType属性设置JSP页面和生成的响应页面的字符编码, 默认内容类型为:text/html它是HTML页面的标准内容类型。
  2. 要从JSP输出XML:<%@ page contentType = "text/xml" %>
  3. 指定浏览器生成的页面呈现为 HTML <%@ page contentType = "text/html" %>
  4. 指定内容类型设置为 Microsoft Word文档 -<%@ page contentType = "application/msword" %>
  5. 指定响应的字符编码:如果要指定返回浏览器的结果页面使用UTF-8:<%@ page contentType = “text/html:charset=UTF-8” %>`

JSP_Page指令的errorPage属性

  1. 在当前页面运行时出现错误时,指定一个错误提示页面,
  2. errorPage属性告诉JSP引擎显示哪个页面。errorPage属性的值是相对URL
  3. 当抛出所有未捕获的异常时,用于在页面出错时指定显示MyErrorPage.jsp的内容:<%@ page errorPage = "MyErrorPage.jsp" %>

JSP_Page指令的isErrorPage属性

  1. isErrorPage属性表示当前的JSP页面可以用作另一个JSP的错误页面。
  2. isErrorPage的值可为true或falseisErrorPage属性的默认值为false
  3. 处理错误handleError.jsp将isErrorPage选项设置为true :<%@ page isErrorPage = "true" %>

JSP_Page指令的extends 属性

  1. extends属性指定生成的servlet必须扩展的超类
  2. 指示JSP转换器生成servlet,以使servlet扩展somePackage.SomeClass -<%@ page extends = "somePackage.SomeClass" %>

JSP_Page指令的import属性

  1. import属性与Java import语句具有相同的功能,并且类似于Java import语句
  2. import选项的值是要导入的程序包的名称。
  3. 导入java.sql.*,使用 <%@ page import = "java.sql.*" %>
  4. 导入多个包,可以使用逗号分隔:<%@ page import = "java.sql.*,java.util.*" %>
  5. 默认情况下,容器会自动导入java.lang.*,javax.servlet.*,javax.servlet.jsp.*和javax.servlet.http.*。

JSP_Page指令的info属性

  1. info属性允许提供JSP的描述:<%@ page info = "This JSP Page Written By Maxsu" %>

JSP_Page指令的isThreadSafe属性

  1. isThreadSafe选项将页面标记为线程安全。默认情况下,所有JSP都被认为是线程安全的。
  2. 如果将isThreadSafe选项设置为false,则JSP引擎确保一次只有一个线程正在执行JSP。
  3. page指令将isThreadSafe选项的值设置为false -<%@ page isThreadSafe = "false" %>

JSP_Page指令的language属性

  1. language属性指示在JSP页面脚本编写中使用的编程语言。
  2. 使用Java作为脚本语言,因此language选项可设置为:<%@ page language = "java" %>

JSP_Page指令的session属性

  1. session属性指示JSP页面是否使用HTTP会话。如果设置值为true,则表示JSP页面可以访问内置session对象,设置值为false表示JSP页面无法访问内置session对象。
  2. 下列代码允许JSP页面使用任何内置session对象方法,如:session.getCreationTime()或session.getLastAccessTime()
  3. <%@ page session = "true" %>

JSP_Page指令的isELIgnored属性

1.isELIgnored属性能够禁用JSP 2.0中引入的表达式语言(EL)表达式的求值计算。
2. isELIgnored属性的默认值为true,这意味着表达式${...}按JSP规范进行评估计算。
3. 如果isELIgnored属性设置为false,则不会对表达式进行评估求值,而将其视为静态文本内容。
4. 设定表达式不会被评估计算 -<%@ page isELIgnored = "false" %>

JSP_Page指令的isScriptingEnabled属性

  1. isScriptingEnabled属性确定脚本元素是否被允许使用。
  2. isScriptingEnabled属性默认值为true,它表示启用脚本,表达式和声明。
  3. isScriptingEnabled如果属性的值设置为false,则如果JSP使用任何脚本,表达式(非EL)或声明,则会引发转换时错误。
  4. 如果要限制脚本,表达式(非EL)或声明的使用,可将isScriptingEnabled属性的值可以设置为false
  5. <%@ page isScriptingEnabled = "false" %>

JSP_include指令

  1. include指令用于在编译阶段包括一个文件。这个指令告诉容器在编译阶段将其他外部文件的内容合并到当前JSP文件中。可在JSP页面的任何位置使用include指令进行编码。
  2. JSP_include指令语法 <% @ include file = "relative url">;
  3. include指令中的文件名实际上是一个相对URL。如果只指定一个没有关联路径的文件名,那么JSP编译器会假定该文件与JSP在同一个目录中。
  4. xml的语法:<jsp:directive.include file = "relative url" />

JSP_include指令示例

  1. include指令的一个很好的例子是要一个页面中包括多个公共页面的内容,如:比如一个主页中包函公共页眉和页脚。
  2. 创建 main.jsp:表示网站的主页
  3. 创建header.jsp:顶部菜单和公共内容
  4. 创建footer.jsp:显示网站的其他信息

main.jsp内容让如下

<head>
    <title>main.jsp</title>
</head>
<body>
    <%@ include file="header.jsp"%>
    <center>
        <p>main主页面</p>
        <p>include指令用于在编译阶段包括一个文件。这个指令告诉容器在编译阶段将其他外部文件的内容合并到当前JSP文件中。可在JSP页面的任何位置使用 include指令进行编码。</p>
    </center>
    <%@ include file="footer.jsp"%>
</body>

header.jsp内容

<html>
<head>
    <title>header.jsp的内容</title>
</head>
<body>
<h1>header.jsp内容 </h1>
<center>
  <p>main主页面</p>
  <p>header.jsp内容,此时用的center早已经被废弃,虽然可以实现居中,但是,不用为好。</p>
</center>
</body>
</html>

footer.jsp的内容`

<html>
<head>
    <title>footer.jsp的内容 -</title>
</head>
<body>
<p>footer.jspe内容</p>
</body>
</html>

运行后效果如下:

JSP_taglib指令

  1. JSP API 允许自定义JSP标签,如HTMLxml标签,标签库是一组实现自定义行为的用户定义标签
  2. taglib指令声明JSP页面使用一组自定义标签,标识库的位置,并提供了在JSP页面中标识自定义标签的方法。
  3. JSPtaglib指令语法:<%@ taglib uri="uri" prefix = "prefixOfTag" >
  4. url属性解析标签库的位置
  5. prefixOfTag 属性通知容器什么位置的标签是自定义操作
  6. JSP 的XML语法:<jsp:directive.taglib uri = "uri" prefix = "prefixOfTag" />
  7. 当使用自定义i标签时,通常为<prefix:tagname>的形式,前缀与在taglib指令中指定的前缀相同,标记名是标记库中实现的标记的名称。

taglib指令样例

  1. 自定义的Vaule标签库,包含一个名为hello的标签,如果想使用一个前缀为mytaghello标签,那么标签将书写为<mytag:hello>
  2. 在JSP文件中使用为如下:
<%@ taglib uri = "Vaule标签库的地址" prefix = "mytag" %>

<html>
   <body>
      <mytag:hello/>
   </body>
</html>

以上是关于JSP_Page指令,include指令和taglib指令的主要内容,如果未能解决你的问题,请参考以下文章

include指令和动作的区别

include 指令和include动作

include指令和taglib指令

include指令和<jsp:include>标准动作

include指令

include指令和include动作的区别