JSP编译指令是通知JSP引擎的信息,它不直接生成输出。常见的编译指令有如下三个:
page指令
此指令是对整个jsp页面的描述指令。语法格式如下:
《% @page
[language="Java"]
[extends="package.class"]
[import= "package. class|package. *},…"]
[session="true|false"]
[buffer="none|8kb|size kb"]
[autoFlush="true|false"]
[isThreadSafe="true|false"]
[info="text"]
[errorPage="relativeURL"]
[contentType="mimeType[ ;charset=characterSet]" |"text/html;charset= "808859-1"]
[isErrorPage=" true|false"]
%》
一个jsp页面中可以有多个page指令。每个page指令中有若干的属性值。
language属性用来说明当前页面的脚本语言种类(也就是括号里面是什么类型的语言)。
extends用来描述由这个jsp页面转译成的java类所继承的父类,或者是实现的接口。
import是导入的包,当脚本中需要引包的时候使用。
session用来说明这个jsp页面是否需要httpsession。
buffer指定输出缓冲虚的大小。默认值是8k,也可是设置成其他大小。当使用out在客户端输出的时候需要的缓存。
autoFlush指的是当输出缓冲区即将溢出时,是否需要强制输出缓冲区的内容。设置为true 时为正常输出:如果设置为 false,会在 buffer溢出时产生一个异常。
info: 设置该JSP程序的信息,也可以看做其说明,可以随便写一些说明性文字,可以通过 Servlet. getServletInfo()方法获取该值。如果在 JSP 页面中,可直接调用 getServletInfo()方法获取该值,因为 JSP 页面的实质就是 Serlet。
errorPage指定错误处理页面。如果本程序产生了异常或者错误,而该 JSP 页面没有对应的处理代码,则会自动调用该指令所指定的 JSP 页面。使用 JSP 页面时,可以不处理异常,即使是 checked 异常,yinwei JSP内建了异常机制支持。如果发生异常时,抛出未处理的异常,又没有指定的错误界面,则错误信息会直接在浏览器显示出来。
isErrorPage设置本 JSP 页面是否为错误处理程序。如果该页面本身己是错误处理页面,则无须使用 errorPage 属性。
contentType: 用于设定生成网页的文件格式和编码方式,即 MIME类型和页面宇符集类型,默认的 MIME类型是 textlhtml; 默认的字符集为 ISO-8859-1。
pageEncoding指定了生成网页的编码字符。
include指令
它可以将外部的jsp文件包含到当前的jsp页面中,同时解析这个外部jsp中的jsp语句(上一节中提到的四种jsp语句)。include 既可以包含静态的文本,也可以包含动态的 JSP 页面。静态的编译指令include,是将被包含的页面加入进来,生成一个完整的页面。所以被包含的jsp可以不是完整的,反正最终用的也不是它,只要能凑成一个完整的就可以。在servlet层面中,include的原理就是,将被包含的页面的java代码融合到当前页面的java代码中。这也就是为什么这种方式叫做静态包含,因为它完全把被包含界面中的代码融入了进来,也包括了其它编译指令。注意防止编译指令的冲突!include静态语句如下:
<%@include file="relativeURLSpec"%>
如果被嵌入的文件经常需要改变,建议使用动作指令(见下节),因为它是动态的 include 语句。之前做的开发中,index界面的include用的就是这种方式。
<jsp:include page="url"/>
taglib指令
这个指令用于指明引入了哪个标签库,前缀是什么,uri是什么。在接下来的章节中会详细介绍。