jsp编译指令用于设置jsp程序的属性以及由jsp生成的servlet中的属性。

jsp常用的编译指令有3个:include指令、page指令、taglib指令。

一、page指令

1、概念:用来设置整个JSP页面的相关属性和功能,其作用范围是整个JSP页面,包括使用include指令引用的其他文件。但是page指令不能作用于动态的包含文件,例如对使用<jsp:include>包含的文件,page指令的设置是无效的。一般情况下,page编译指令位于页面最上方,一个页面可以有多个编译配置指令。

2、语法格式:<%@page attribute1="value1" attribute2="value2"... %>

3、指令的属性:

(1)language属性:定义当前JSP页面使用的脚本语言,默认为java。少数服务器支持JavaBean。

(2)import属性:导入使用的包。jsp中用import指明多个包,用逗号隔开。

(3)contentType属性:指定当前页面的MIME类型和字符编码。MIME类型有:text/plain、text/html(默认)、image/gif、image/jpeg等。默认字符编码方式:ISO-8859-1,若需要中文,可修改为GB2312或UTF-8。

(4)pageEncoding属性:设定jsp源文件保存时所使用的编码。由于jsp文件要响应客户端的请求,因此它会被编译成一个servlet。而servlet是一个java类,java类在内存中是以Unicode进行编码的,若jsp引擎不知道jsp的编码格式,就无法进行解码,并将其转换成内存中的Unicode编码。

(5)session属性:指定这个jsp页面是否支持session机制,默认为true。

(6)extends属性:指定jsp编译生成的servlet所继承的父类或所实现的接口。

(7)errorPage属性:指定错误处理页面的地址。若本页面产生了异常或者错误,而该jsp页面没有对应的处理代码,此时就会自动调用该属性所指向的jsp页面。

(8)isErrorPage属性:与errorPage属性配合使用,指定当前页面是否可以作为另一个jsp页面的错误处理页面。

(9)info属性:定义jsp页面的描述信息。在jsp页面中,可以直接调用getServletInfo()方法获取该值。这是由于jsp是servlet,而任何一个servlet都实现了servlet接口,servlet接口中含有getServletInfo()方法。

(10)buffer属性:指定out对象使用缓冲区的大小。jsp的隐式对象out用于缓存jsp对客户端浏览器的输出,默认为8KB.

(11)autoFlush属性:当输出缓冲区即将溢出时,是否需要强制输出缓冲区的内容,默认为true。设置为true时可正常输出;则会在buffer溢出时产生一个异常。

(12)isThreadSafe属性:指定对jsp页面的访问是否为线程安全,默认为true。若设置为true,则表示该jsp文件支持多线程;若为false则表示不支持。

(13)trimDirectiveWhitespaces属性:是否去掉指令前后的空白字符,默认为flase。该属性是jsp2.1规范中新增的;当属性值是true时,取消空白字符串。

项目ch04案例:

1、创建page.jsp页面,使0作为被除数:

     

2、创建错误页面error.jsp:

3、结果:http://localhost:8080/ch04/error.jsp

使用page指令中的errorPage属性,当page.jsp页面出现异常时,内容跳转到error.jsp页面的内容,而地址栏中的地址没有改变,仍然为~~~page.jsp。

二、include指令

1、概念:include是jsp的静态包含指令,使用该指令可将一个外部文件包含到此jsp程序中。一般在jsp页面被编译成servlet时引入其中包含的HTML文件、jsp文件或文本文件。在include指令中,包含页面和被包含页面同一类型的参数不能被定义两次。include指令通常用来包含网址中经常出现的重复性页面,被包含文件中的任何一部分改变了,所有包含该文件的主jsp文件都需要重新进行编译。

2、语法格式:<%@include file="文件路径" %>

file必须是相对路径,不需要指定端口、协议、域名等。若路径以“/”开头,则该路径等同于参照jsp应用的上下文关系路径;若路径是以文件名或目录名开头,则路径就是当前jsp文件所在的路径。

项目ch04案例:

1、创建top.jsp页面

2、创建footer.jsp页面

3、使用include包含两个页面

4、结果:http://localhost:8080/ch04/include.jsp

三、taglib指令

1、概念:允许页面使用用户自定义的标签。

2、语法格式:<%@taglib (uri="tagLibraryURI" | tagdir="tagDir") prefix="tagPrefix" %>

uri属性:用来指明自定义标记库的存放位置。该属性的唯一的标识和前缀相关的标签库描述符,可以是绝对或相对的URL。

tagdir属性:指示前缀将被用于标识安装在/WEB-INF/tags/目录或子目录下的标签文件,一个隐含的标签库描述符被使用。

prefix属性:定义一个prefix:tagname形式的字符串前缀,用于区分多个自定义标签。以jsp:、jspx:、java:、javax:、servlet:、sun:和sunw:开始的前缀被保留,前缀的命名必须遵循XML名称空间的命名约定。

ch04项目案例:

结果:http://localhost:8080/ch04/taglib.jsp

jsp基础语言-jsp指令的更多相关文章

  1. jsp基础语言-jsp动作

    jsp动作是一组jsp内置的标签,用来控制jsp的行为,执行一些常用的jsp页面动作.通过jsp动作实现使用多行java代码能够实现的效果,即对常用的jsp功能进行抽象与封装. jsp共有七种标准的“ ...

  2. jsp基础语言-jsp注释

    JSP注释可分为客户端注释和服务器端注释. 客户端注释:用户可通过浏览器中的源代码查看,且这种注释可以加入JSP表达式. 语法:<!-- 客户端注释[<%=表达式%>] --> ...

  3. jsp基础语言-jsp异常

    JSP异常 jsp页面执行时会出现两种异常,实际是javax.servlet.jsp包中的两类异常JsError和JspException. 1.JsError 在jsp文件转换成servlet文件时 ...

  4. jsp基础语言-jsp代码段

    jsp代码段:是放在<% %>标记之间符合java语言规范的代码片段 格式:<% 代码段 %>  代码段中可以包含用于jsp变量和方法的声明.显示表达式.HTML以及调用Jav ...

  5. jsp基础语言-jsp表达式

    1.jsp表达式作用:将动态信息显示在页面中. 2.jsp表达式语法:<%=变量或表达式%> 变量:要在页面显示的值的变量名 表达式:其值由服务器计算,计算结果以字符串的形式发送到客户端 ...

  6. jsp基础语言-jsp声明

    jsp声明的语法格式:<%! 声明代码 %> jsp声明的意义:用来定义在程序中使用到的变量.方法等.最后要以“:”结尾. jsp声明举例: <%! int a=100,b=200; ...

  7. jsp 基础知识之指令元素

    由于考研和结业的事情,这里荒废了许久,而如今重新捡起来,是因为带到公司的碳素笔没有油了......    jsp的指令元素:通常以<%@开始,以%>结尾. jsp主要包括三种指令元素:pa ...

  8. JSP基础:JSP指令、JSP注释、JSP脚本、JSP声明、JSP表达式

    JSP指令分为:page指令.include指令.taglib指令. page指令:通常位于JSP页面的顶端,同一个页面可以有多个页面指令. 语法:<%@ page language=" ...

  9. JavaWeb基础-Jsp基础语法

    jsp基础语法 JSP的组成 静态内容.指令.表达式.小脚本.声明.注释 JSP的生命周期 用户发出index.jsp ,服务端判断是否是第一次请求,若是第一次请求,则tomcat中的JSP引擎中的文 ...

随机推荐

  1. 巧妙设置Texture Type,将ShadowMask内存占用变成之前的1/4

    0x00 前言 在这篇文章中,我选择了过去一周Unity官方社区交流群中比较有代表性的几个问题,总结在这里和大家进行分享.同时,也欢迎大家加入我们这个讨论干货的官方技术群,交流看法分享经验. Unit ...

  2. [BlueZ] 2、使用bluetoothctl搜索、连接、配对、读写、使能notify蓝牙低功耗设备

    星期三, 05. 九月 2018 02:03上午 - beautifulzzzz 1.前言 上一篇讲了如何编译安装BlueZ-5,本篇主要在于玩BlueZ,用命令行去操作BLE设备: [BlueZ] ...

  3. SSL/TLS握手过程

    ----------------------------------专栏导航----------------------------------HTTPS协议详解(一):HTTPS基础知识 HTTPS ...

  4. 分布式服务框架介绍:最成熟的开源NIO框架Netty

    尽管JDK提供了丰富的NIO类库,网上也有很多NIO学习例程,但是直接使用Java NIO类库想要开发出稳定可靠的通信框架却并非易事,原因如下: 1)NIO的类库和API繁杂,使用麻烦,你需要熟练掌握 ...

  5. [Swift]LeetCode114. 二叉树展开为链表 | Flatten Binary Tree to Linked List

    Given a binary tree, flatten it to a linked list in-place. For example, given the following tree: 1 ...

  6. [Swift]LeetCode470. 用 Rand7() 实现 Rand10() | Implement Rand10() Using Rand7()

    Given a function rand7 which generates a uniform random integer in the range 1 to 7, write a functio ...

  7. [Swift]LeetCode652. 寻找重复的子树 | Find Duplicate Subtrees

    Given a binary tree, return all duplicate subtrees. For each kind of duplicate subtrees, you only ne ...

  8. Nginx篇--Nginx源码搭建

    Nginx安装步骤: 1.依赖 gcc openssl-devel pcre-devel zlib-devel    安装:yum install gcc openssl-devel pcre-dev ...

  9. cmd命令窗口的快速选中复制黏贴

    右击"窗口标题栏",选择属性,进入属性面板: 在"选项"面板勾选编辑选项下的"快速编辑模式"; 点击确认. 这时鼠标左键就有了选中功能,可以 ...

  10. 【WebAPI No.4】Swagger实现API文档功能

    介绍: Swagger也称为Open API,Swagger从API文档中手动完成工作,并提供一系列用于生成,可视化和维护API文档的解决方案.简单的说就是一款让你更好的书写API文档的框架. 我们为 ...