本章介绍JSP的3个编译指令,在JSP中常见的编译指令有如下3个:

        1.page:用于针对当前页面的指令。
        2.include:用于指定包含另一个页面。
        3.taglib:用于定义和访问自定义标签。
    使用编译指令的格式如下:<%@ 编译指令 属性名1="属性值1" 属性名2="属性值2" %>

1.page指令

    page指令通常位于JSP页面的顶端,一个JSP页面可以有多条page指令。page指令的语法格式如下:
  1. <%@ page
  2. [language="Java"]
  3. [extends="package.class"]
  4. [import="package.class│package.*,…"]
  5. [session="true│false"]
  6. [buffer="none│8kb│size kb"]
  7. [autoFlush="true│false"]
  8. [isThreadSafe="true│false"]
  9. [info="text"]
  10. [errorPage="relativeURL"]
  11. [contentType="mimeType[;charset=characterSet]"│"text/html;charSet=ISO8859-1"]
  12. [isErrorPage="true│false"]
  13. [pageEncoding ="UTF-8│GBK|..."]
  14. %>
    例如:<%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK"%>
下面依次介绍page指令各属性的意义:
  1. language:声明当前JSP页面使用的脚本语言的种类,因为页面是JSP页面,该属性的值通常都是java,该属性的默认值也是java,所以通常无须设置。
  2. extends:指定JSP页面编译所产生的Java类所继承的父类,或所实现的接口。
  3. import:用来导入包。下面几个包是默认自动导入的,不需要显式导入。默认导入的包有:java.lang.*、javax.servlet.*、javax.servlet.jsp.*、javax.servlet.http.*。
  4. session:设定这个JSP页面是否需要HTTP Session。
  5. buffer:指定输出缓冲区的大小。输出缓冲区的JSP内部对象:out用于缓存JSP页面对客户浏览器的输出,默认值为8kb,可以设置为none,也可以设置为其他的值,单位为kb。
  6. autoFlush:当输出缓冲区即将溢出时,是否需要强制输出缓冲区的内容。设置为true时为正常输出;如果设置为false,则会在buffer溢出时产生一个异常。
  7. isThreadSafe:true模式表示它以多线程方式运行。false模式表示它是以Singleton模式运行。
  8. info:设置该JSP程序的信息,也可以看做其说明,可以通过Servlet.getServletInfo()方法获取该值。如果在JSP页面中,可直接调用getServletInfo()方法获取该值,因为JSP页面的实质就是Servlet。
  9. errorPage:指定错误处理页面。如果本页面产生了异常或者错误,而该JSP页面没有对应的处理代码,则会自动调用该指令所指定的JSP页面。因为JSP内建了异常机制支持,所以JSP可以不处理异常,即使是checked异常。
  10. isErrorPage:设置本JSP页面是否为错误处理程序。如果该页面本身已是错误处理页面,则通常无须指定errorPage属性。
  11. contentType:用于设定生成网页的文件格式和编码方式,即MIME类型和页面字符集类型,默认的MIME类型是text/html;默认的字符集类型为ISO-8859-1。
  12. pageEncoding:用于设定生成网页的编码。
其中较为常用的已使用“特殊”标识,请注意!

2.include指令

    静态的include编译指令,会将包涵的页面加入本页面,融合成一个页面,include编译指令语法如下:<%@ include file="filePath" %>
    在使用include指令时应注意以下几点:
  1. include编译指令是静态的,因为它是编译指令,所以include指令是静态包含。静态包含的意义:包含页面在编译时将完全包含了被包含页面的代码,即JSP页面编译生成的Servlet类中已经完全包含了被包含页面的代码。所以静态包含只是简单的替换,不能传递参数。
  2. 如果被包含的文件需要经常改变,建议使用<jsp:include page="filePath"/>操作指令,它是JSP动态包含语句。

3.taglib指令

    taglib指令是用于定义当前JSP页面要使用的标签库,其语法格式如下:<%@ taglib prefix="标签前缀" tagdir="自定义标签文件夹" uri="" %>
    关于taglib指令在后面的 JSP自定义标签库、JSTL标准标签库 中会深入介绍,下面只介绍其属性值:
  1. prefix:标签的前缀,只在当前页面区分多个标签库
  2. tagdir:用于指定定义标签库的文件夹路径,一般在导入自定义标签库时使用该属性
  3. uri:定位标签库描述符的位置,唯一标识和前缀相关的标签库描述符,可以使用绝对或相对URL
-------------------------------------------------------------------------------------------------------------------------------

02.JSP的3个编译指令的更多相关文章

  1. 二、JSP的3个编译指令,7个动作指令,9个内置对象

    JSP 3个编译指令 1)  page指令(基本不需要用到,使用默认即可) 主要属性: 1.Language:指定脚本所采用的语言类型,现在只支持java 2.Extends:定义当前jsp产生的se ...

  2. JavaWeb从0开始学(二)-----JSP基本语法与编译指令

    在上一节中我们学习了如何搭建一个简单的Web应用,并且已经知晓了一个JSP页面主要由静态的HTML内容和动态的Java脚本共同组成.JSP的基本语法共有JSP注释.JSP声明.输出JSP表达式与JSP ...

  3. jsp 的 3 个编译指令

    JSP 的编译指令是通知 JSP 引擎的消息,它不直接生成输出. 常见的编译指令有如下三个: 1.page:该指令是针对当前页面的指令 2.include:用于指定包含另一个页面 3.taglib:用 ...

  4. 【JSP】JSP基础学习记录(一)—— 基础介绍以及3个编译指令

    序: 从实现到现在一直是以.net为主,但偶尔也会参与一些其他语言的项目.最近需要对一个Java Web项目进行二次开发,一直没学习过JSP所以买了几本书自学试试.参考资料为<轻量级Java E ...

  5. JSP的编译指令

    JSP有3个编译指令,是通知JSP引擎的消息,它不直接生成输出.编译指令都有默认值,无须为每个指令设置值. 常见的编译指令有如下三个: page:针对当前页面的指令. include:指定包含另一个页 ...

  6. JSP学习(2)---四种基本语法与三种编译指令

    JSP的异常可以不处理,即使是checked异常. 四种基本语法: jsp声明,jsp注释,jsp表达式,jsp脚本 三种编译指令: page,include,taglib 下面是具体的练习. sho ...

  7. JSP基本的语法、3个编译指令、7个动作指令、9个内置对象

    一.jsp概述 JSP是java server page的缩写,其本质是一个简化的servlet,是一种动态网页技术标准.jsp页面是在HTML页面中嵌入java程序段.使用jsp开发的应用程序能够跨 ...

  8. jsp笔记2(编译指令与动作指令)

    一.jsp的编译指令是通知jsp引擎的消息,不会生成输出. jsp的3个编译指令: page:针对当前页面的指令   include:包含另一个页面的指令   taglib:用于定义和访问自定义标签 ...

  9. 01_13_JSP编译指令

    01_13_JSP编译指令 1. Directive Directive(编译指令)相当于在编译期间的命令 格式: <%@Directive 属性=”属性值”%> 常见的Directive ...

随机推荐

  1. CentOS6.X安装vsftpd服务

    #-----------------CentOS6.X安装VSFTPD服务 #! /bin/sh #1.关闭selinux setenforce 0 sed -i 's/enforcing/disab ...

  2. oracle函数和存储过程示例

    Function: --为了使产生的uuid符合rfc 4122的标准(http://tools.ietf.org/html/rfc4122),例如:a8f662b8-6e7a-13fe-e040-9 ...

  3. DNS笔记 DNS区域集成到 Active Directory

    可以将 DNS 区域集成到 Active Directory 中以提供增强的容错功能和安全性.OpenDNS   Google Public DNS往返时间 (RTT) 远程访问服务 (RAS)域名与 ...

  4. Discuz X3.2 分区 gid 完美伪静态方法 Apache/Nginx

    Discuz 官方给出的伪静态规则并不完整,只实现了部分的伪静态设置及规则,分区 gid 仍然是 forum.php?gid=xxx 的形式,对于有强迫症的我是无法忍受的,下面给出分区 gid 的伪静 ...

  5. php codebase生成随机数

    php使用codebase生成随机数.  有25幅作品拿去投票,一次投票需要选16幅,单个作品一次投票只能选择一次.前面有个程序员捅了漏子,忘了把投票入库,有200个用户产生的投票序列为空.那么你会如 ...

  6. Entity Framework 5问题集锦

    ORM框架万万千,一直都使用NHibernate,没用过其他的.最近闲来学习下微软自家的Entity Framework,记录一些我学习过程中遇到的头疼问题.(不断更新中...) 教程:http:// ...

  7. java实现的MySQL自动备份和还原(struts2+Hibernate)---兼容 window+Linux

    相信很多朋友都经历过数据库出问题的情况,我也同样(见我的上一篇博文:phpmyadmin误删表后的恢复过程(心惊胆跳啊)   ).如果数据很大或者很重要,那么恢复起来是相当困难的,所以我们在做一个相对 ...

  8. How to create Lookup Worker Filtered by Legal Entity[AX2012]

    1. Add a new method in hcmWorker table, and add this script : public static client void lookupWorker ...

  9. SQL Server 基础:子查询

    1.子查询的概念:子查询就是嵌套在主查询中的查询.子查询可以嵌套在主查询中所有位置,包括SELECT.FROM.WHERE.GROUP BY.HAVING.ORDER BY.2.子查询的分类:2.1按 ...

  10. 【原创】可以换行的RadioGroup

    0.效果截图: 以上两个RadioGroup均使用FNRadioGroup实现. 1.控件代码: public class FNRadioGroup extends ViewGroup { /** 没 ...