一、指令元素语法:
<%@ 指令名 属性="值" %>
(一)page指令
page指令可以指定页面使用的脚本语言、实现的接口,导入的软件包等。
用于设置JSP页面的全局属性,这些属性将用于和JSP容器通信,控制所生成的servlet结构。page指令作用整个JSP页面,可以将怕个指令放在文档中任何地方。
下表列出与Page指令相关的属性:
属性 | 描述 |
---|---|
buffer | 指定out对象(输出流)是否具有缓冲区,并设置缓冲区大小。none不具有缓冲功能,或者其他具体数值,默认值为8kb。<%@ page buffer=”none|nkb“ %> |
autoFlush | 指定缓冲区是否自动进行强制输出,默认为true。当为true时,缓冲区满时仍正常输出,false时产生异常。当buffer为none时,不能设置为false。 <%@ page autoFlush=”true|false“ %> |
contentType | 指定JSP页面的MIME格式以及网页的编码格式。默认格式为ISO-8859-1。<%@ page contenType=”txt/html;charset=”ISO-8859-1“ %> |
errorPage | 指定当JSP页面发生异常时需要转向的错误处理页面<%@ page errorPage=”error.jsp“ %> |
isErrorPage | 指定当前页面是否可以作为另一个JSP页面的错误处理页面,默认为false。 <%@ page isErrorPage=”true|false“ %> |
extends | 指定义该JSP页面生成的Servlet继承于哪个父类,必须指定该类全名,即包名加类名,一般使用默认值。少用,慎用,可能限制JSP页面编译能力。<%@ page extends=”继承的父类“ %> |
import | 导入要使用的Java类,可以是环境变量中所指定目录下的类文件,也可以是web项目WEB-INF下的classes目录中的自定义文件。JSP默认导入的包有:java.lang.*;javax.servlet.*;javax.servlet.jsp.*;javax.servlet.http.*; page指令中唯一容许在同一文档出现多次的属性。<%@ page import="导入的包名" %> |
info | 设置JSP页面的相关信息,可以为任意字符串。可通过Servlet.getServletInfo来获取该信息。<%@ page info=”this is a jsp page“ %> |
isThreadSafe | 指定JSP页面是够支持多线程使用,true时支持多线程,同时能处理多个用户的请求,false则不能,只能当个用户,默认为true。 <%@ page isThreadSafe=”true|false“ %> |
language | 定义JSP页面所用的脚本语言,默认是Java,目前只有java一种,不排除以后有其他语言的加入。<%@ page language=”java“ %> |
session | 指定JSP页面是否使用session,默认为true.<%@ page session=”true|false“ %> |
isELIgnored | 指定是否执行EL表达式,true则忽略,不执行。默认为false。<%@ pageisELIgnored=”ture|false“ %> |
pageEncodeing | 定义web容器对jsp响应的字符编码,默认格式为ISO-8859-1。<%@ pageEncodeing=”characterSetISO-8859-1“ %> |
(二)include指令
page指令可以指定页面使用的脚本语言、实现的接口,导入的软件包等。
JSP可以通过include指令来包含其他文件。被包含的文件可以是JSP文件、HTML文件或文本文件。include指令将会在jsp编译时插入文件, 被包含的文件执行完,该JSP页面才恢复执行。
这个包含的过程是静态包含(静态包含:先包含后编译;动态包含(include动作标记): 先 编译 后 包含 )。
注意:在被包含的文件中不要使用和主页重复的HTML标签。这样会影响原jsp文件中同样的标签导致错误。
因为原文件和被包含文件可以互相访问彼此定义的变量和方法,所以要避免变量和方法在命名上的问题。
Include指令的语法格式如下:
<%@ include file="文件相对 url 地址" %>
(三) Taglib指令
JSP API允许用户自定义标签,一个自定义标签库就是自定义标签的集合。
Taglib指令引入一个自定义标签集合的定义,包括库路径、自定义标签。
一个jsp页面允许有多个taglib指令,但不能有重复的前缀
Taglib指令的语法:
<%@ taglib uri="uri" prefix="prefixOfTag" %>
uri属性:定位标签库描述符的位置。唯一标识和前缀相关的标签库描述符,可以使用绝对或相对URL。
tagDir属性:指示前缀将被用于标识在WEB-INF/tags目录下的标签文件。prefix属性:定义了taglib前缀名称。不可以使用保留前缀和空前缀,遵循XML命名空间的命名约定。