`

JSP-编译指令page、include、taglib

    博客分类:
  • JSP
 
阅读更多

编译指令

    JSP 的编译指令是通知 JSP 引擎的消息,它不直接生成输出。编译指令都有默认值,因此开发人员无须为每个指令设置值。

    常见的编译指令有三个。
        page: 该指令是针对当前页面的指令。
        include: 用于指定如何包含另一个页面。
        tablib: 用于定义和访问自定义标签。

    编译指令的格式如下:
        <%@ 编译指令名 属性名="属性值"…%>

1 page 指令

page指令通常位于JSP页面的顶端,一个JSP页面可以使用多条page指令。

page指令属性:
language:声明当前JSP页面使用的脚本语言的种类。目前该属性的值只能为java,默认值也为java,所以通常无须设置。
import
:用来导入包。默认导入的包有:java.lang.*, javax.servlet.*, javax.servlet.http.*, javax,.servlet.jsp.*.
contentType:告知客户端,服务器对此次请求响应的正文格式(MIME类型)和编码字符集。默认为contentType="text/html;charset=UTF-8ISO-8859-1"。如设置为:contentType="text/html;charset=UTF-8",就是告诉客户端,服务器响应的正文文件格式为text/html,这样客户端就会用默认的浏览器方式打开文件,而不用别的应用程序charset=UTF-8告知客户端浏览器,服务器返回的文件编码格式为UTF-8,浏览器将按照UTF-8格式进行解码并且以UTF-8字符集进行页面显示。contentType的作用本质上相当于模拟了一个Http协议的消息头。contentType虽然写在JSP文件中,但是因为JSP文件其实并不能直接响应客户端请求,它必须编译成对应的Servlet以后才能响应请求。所以本质上这个contentType是针对Servlet的设置,即Servlet告诉客户端,我返回的文件(以流的形式,response.getWriter())的MIME类型为text/html,文件的编码字符集为UTF-8。
pageEncoding:设定JSP源文件保存时所使用的编码。因为JSP文件要想响应客户端的请求,它就必须先被编译成一个Servlet,而Servlet是一个Java类,Java类在内存中是以Unicode进行编码的,如果JSP引擎(将JSP翻译成对应的Servlet)不知道JSP的编码格式,就无法进行解码,然后将其转换成内存中的Unicode编码。注意区分contentType的charset和pageEncoding,charset是响应时Servlet(JSP已经编译成了Servlet)告诉客户端浏览器”我“是以这种字符编码的,”你“也要以这种字符解码并显示,整个过程涉及服务器和客户端两方面,而pageEncoding是服务器端JSP文件告诉JSP引擎要以何种编码进行解码,即此时JSP还没被编译成Servlet,它是被编译成Servlet的前提准备工作,整个过程都发生在服务器端,与客户端无关。
session:设定这个JSP页面是否支持session机制,默认为true,所以一般不需要设置,保持默认值即可。
errorPage:指定错误处理页面的地址。如果本页面产生了异常或者错误,而该JSP页面没有对应的处理代码,此时就会自动调用该属性所指向的JSP页面。
isErrorPage:和errorPage属性配合使用。设置本JSP页面是否为错误处理页面。
info:设置该JSP程序(不要忘记本质上是个Servlet)的信息,也可以看做其说明。可以通过Servlet.getServletInfo()方法获取该值。在JSP页面中,可以直接调用getServletInfo()方法获取该值如:<%=getServletInfo()%>.因为JSP是Servlet,而任何一个Servlet都实现了Servlet接口,Servlet接口中含有getServletInfo()方法。
extends
:指定JSP编译生成的Servlet所继承的父类或所实现的接口,一般很少用。
buffer
:指定输出缓冲区的大小。JSP的隐含对象out(JSP有九大隐含对象或者说内置对象)用于缓存JSP(其实是Servlet)对客户端浏览器的输出,默认值为8KB,可以设置为none,也可以设置为其他的值,单位为KB。
autoFlush:当输出缓冲区即将溢出时,是否需要强制输出缓冲区的内容。设置为true时可以正常输出,设置为false时,则会在buffer溢出时产生一个异常。默认为true。

 最常用的是import,contentType,pageEncoding,最常见的最简单的JSP模版为:
<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>

isELIgnored:如果设定为真,那么JSP中的表达式被当成字符串处理。比如下面这个表达式<p>${2000/20}</p>在isELIgnored="true"时输出为${2000/20},而isELIgnored="false"时输出为100.0。默认为false。

isThreadSafe:用来指定该JSP文件是否支持多线程使用。如果设置为true,则表示该JSP文件支持多线程的使用,也就是表示该JSP文件能够同时处理多个用户的请求;如果设置为false,则表示该JSP文件不支持多线程的使用,也就是表示该JSP文件只能一次处理一个用户的请求。isThreadSafe属性的默认值为true

trimDirectiveWhitespaces:可以使jsp输出的html时去除多余的空行(jsp上使用EL和tag会产生大量的空格和空行)。

deferredSyntaxAllowedAsLiteral:该属性指示在JSP页面的模板文本中是否允许出现字符序列#{。如果该属性的值为false(默认值),当模板文本中出现字符序列#{时,将引发页面转换错误。
    该属性是在JSP 2.1规范中引入的,字符序列#{被保留给表达式语言使用,你不能在模板本中使用字符序列#{。如果在模板文本中需要出现字符序列#{,那么可以将该属性设置为true。

 

2 include指令

 include指令用于在JSP页面中静态包含一个文件,该文件可以是JSP页面、HTML网页、文本文件或一段Java代码。使用了include指令的JSP页面在转换时,JSP容器会在其中插入所包含文件的文本或代码。
include指令的语法如下:
<%@ include file="relativeURLspec" %>

 

3 taglib指令

taglib指令允许页面使用用户定制的标签。
taglib指令的语法如下:
<%@ taglib (uri="tagLibraryURI" | tagdir="tagDir") prefix="tagPrefix" %>

taglib指令有三个属性:
uri:该属性唯一地标识和前缀(prefix)相关的标签库描述符,可以是绝对或者相对的URI。这个URI被用于定位标签库描述符的位置。
tagdir:该属性指示前缀(prefix)将被用于标识安装在/WEB-INF/tags/目录或其子目录下的标签文件。一个隐含的标签库描述符被使用。
    下面三种情况将发生转换(translation)错误:
        属性的值不是以/WEB-INF/tags/开始。
        属性的值没有指向一个已经存在的目录。
        该属性与uri属性一起使用。
prefix:定义一个prefix:tagname形式的字符串前缀,用于区分多个自定义标签。以jsp:,jspx:,java:,javax:,servlet:,sun:和sunw:开始的前缀被保留。前缀的命名必须遵循XML名称空间的命名约定。在JSP 2.0规范中,空前缀是非法的。

 

 

分享到:
评论

相关推荐

    JSP常见的三个编译指令page、include、taglib

    jsp中include指令静态导入和动态导入的区别详解JSP编译指令page、include详解JSP中动态include与静态include的区别介绍JSP指令元素(page指令/include指令/taglib指令)复习整理基于jsp:included的使用与jsp:param乱码...

    jsp-api-2.1.jar

    3. **JSP指令**:包括 page、include 和 taglib 指令,它们用于设置页面级属性,导入其他文件,以及声明标签库引用。 4. **JSP动作**:如 `&lt;jsp:include&gt;`、`&lt;jsp:forward&gt;`、`&lt;jsp:plugin&gt;` 等,它们用于在运行时...

    jsp-api-2.1.jar下载

    再者,JSP 2.1引入了页面指令(Page Directives),如`@page`, `@import`, `@include`, `@taglib`等,这些指令允许开发者在页面级别进行配置,比如设置页面编码、导入Java包、包含其他页面以及注册自定义标签库。...

    jsp-api.jar和servlet-api依赖包

    4. **JSP指令**:如`&lt;%@ page %&gt;`, `&lt;%@ include %&gt;`, `&lt;%@ taglib %&gt;`, 它们用于配置页面属性或引入外部资源。 5. **JSP表达式**:`&lt;%= expression %&gt;`用于输出Java表达式的值到HTML响应中。 6. **JSP脚本元素**:...

    jsp-api-2.1.jar最新版

    - **页面指令改进**:例如,`page`, `include`, `taglib`等指令有了更多的配置选项,增强了对元数据的支持。 - **错误处理**:JSP 2.1引入了更强大的错误处理机制,允许开发者更好地控制和报告错误。 3. **`jsp-...

    精通JSP-Web开发技术与典型应用

    指令如page、include和taglib,用于配置页面属性、引入其他页面和注册自定义标签库。 2. **JSP生命周期**:JSP页面被容器转换为Servlet,经历初始化、服务和销毁三个阶段。在初始化阶段,JSP会被编译为Servlet类;...

    jsp-api.jar

    - **JSP指令**(Directives):比如`&lt;%@ page %&gt;`, `&lt;%@ include %&gt;`, `&lt;%@ taglib %&gt;`, 它们提供关于整个JSP页面或部分页面的信息,比如设置字符编码、导入标签库等。 - **JSP动作**(Actions):如`&lt;jsp:include...

    Jsp-Api英文文档

    指令包括`@page`、`@include`和`@taglib`,用于配置整个页面或引入其他资源。动作如`&lt;jsp:include&gt;`、`&lt;jsp:forward&gt;`和`&lt;jsp:params&gt;`,用于在运行时操作页面结构。脚本元素包括脚本声明、表达式和脚本块,用于编写...

    jsp-api文档

    主要有三种类型的指令:`&lt;%@ page %&gt;`, `&lt;%@ include %&gt;`, 和`&lt;%@ taglib %&gt;`。`&lt;%@ page %&gt;`用于设置JSP页面的属性,如语言、导入的包、错误页面等;`&lt;%@ include %&gt;`用于在运行时合并多个文件;`&lt;%@ taglib %&gt;`...

    大家经常会用到的jar包servlet-api.jar&jsp-api.jar

    在JSP中,我们可以使用JSP动作元素(如`&lt;jsp:include&gt;`、`&lt;jsp:forward&gt;`)和指令(如`&lt;%@ page %&gt;`、`&lt;%@ taglib %&gt;`)来控制页面的行为。 例如,`&lt;jsp:useBean&gt;`动作可以在页面作用域或应用作用域中实例化一个Java...

    jsp的常用指令有哪些(编译指令/动作指令整理)

    在JSP中,三个编译指令分别是page、include和taglib。page指令用于定义JSP页面的各种属性,如使用的脚本语言、父类或接口、导入的包、会话管理、错误页面、内容类型等;include指令用于将外部文件包含进JSP页面中,...

    jsp ----挂号系统

    JSP提供了一些内置指令,如`&lt;%@ page %&gt;`, `&lt;%@ include %&gt;`, 和`&lt;%@ taglib %&gt;`,它们分别用于设置页面属性、包含其他文件和导入自定义标签库。JSP动作元素如`&lt;jsp:include&gt;`, `&lt;jsp:forward&gt;`, `&lt;jsp:param&gt;`等,...

    郑州轻工业大学-JSP-PPT.zip

    常见的指令有page、include和taglib。page指令用于配置页面属性,比如设置语言、导入类等;include指令用于在运行时动态包含其他文件;taglib指令则引入自定义标签库。 3. **JSP动作**: - `5-4 JSP常用动作 xin....

    jsp-api-2.0.jar免费下载

    3. **页面指令改进**:增加了`page`, `include`, `taglib`等指令的增强功能,使得配置更加灵活和方便。 4. **分离Java代码和表现层**:通过使用`&lt;jsp:declaration&gt;`和`&lt;jsp:scriptlet&gt;`标签,可以将Java代码从JSP...

    jsp简单语法,servlet,JSP概述,JSP页面构成,注释,指令,脚本元素,动作元素,错误处理

    - **指令**:用于配置页面或者影响JSP编译过程,如`&lt;%@ page %&gt;`, `&lt;%@ include %&gt;`, `&lt;%@ taglib %&gt;`等。 - **动作元素**:用于调用JSP组件,如`&lt;jsp:include&gt;`, `&lt;jsp:forward&gt;`, `&lt;jsp:param&gt;`等。 **3. 注释** ...

    JSP(JavaWeb必备)

    - **指令元素**:定义页面级的属性,如`&lt;%@ page %&gt;`, `&lt;%@ include %&gt;`, `&lt;%@ taglib %&gt;`。 - `&lt;%@ page %&gt;`: 设置JSP页面的属性,如导入包、设置字符编码、指定语言等。 - `&lt;%@ include %&gt;`: 动态包含其他文件,...

    jsp-api 文档

    1. **JSP指令(Directives)**:用于配置整个页面或导入其他资源,例如`&lt;%@ page %&gt;`, `&lt;%@ include %&gt;`, `&lt;%@ taglib %&gt;`。 - `&lt;%@ page %&gt;`: 设置JSP页面属性,如语言、错误页、导入包等。 - `&lt;%@ include %&gt;`: ...

    jsp--jsp的初步认识

    3. **JSP指令**:JSP提供三种类型的指令,包括页面指令(page directive)、包含指令(include directive)和标签库指令(taglib directive)。页面指令如`&lt;%@ page %&gt;`用于设置页面属性,包含指令如`&lt;jsp:include&gt;`...

    Jsp脚本元素指令以及动作课后作业

    - **解析:** JSP提供了三种编译指令:`page`、`include`和`taglib`。 - **错误选项解析:** - B选项中的`Plugin`指令不存在。 - C选项中的`Forward`指令不属于编译指令。 - D选项中的`Param`指令也不属于编译...

Global site tag (gtag.js) - Google Analytics