JSP一共包含3种指令,分别为page,include,taglib,指令必须嵌套在<%@ 和%>之中,基本语法如:<%@ 指令 属性名="值" %>,大小写敏感。page指令的完整语法如下,以JSP2.0规范为例
<%@ page
[ language="java" ]
[ extends="package.class" ]
[ import="{package.class | package.*},..." ]
[ session="true | false" ]
[ buffer="none | 8kb | sizekb" ]
[ autoFlush="true |false" ]
[ isThreadSafe="true | false" ]
[ info="text" ]
[ errorPage="relative_url" ]
[ contentType="mimeType [ ;charset=characterSet ]" | "text/html ;charset=ISO-5589-1" ]
[ pageEncoding="characterSet | ISO-5589-1 ]
[ isELIgnored="true | false" ]
%>
黑体代表page指令种某个属性的默认属性,( | )用于分隔该属性的可选值,import属性是惟一一个允许同一个JSP页面中设置多次的属性。
1.language属性
language属性用于说明JSP页面所使用的脚本语言,默认为java,目前只支持java,因此可以不用设置
2.extends
extends属性用于指定JSP页面翻译成的Servlet所继承的父类,一般不设置,让JSP引擎自行处理。如果需要设置,因该注意它对JSP页面的其他部分所造成的影响
3.import属性
import属性指定在JSP页面翻译成的Servlet源文件中导入的包或者类
4.session属性
session属性用于指定在JSP页面翻译成的Servlet中是否预先创建好session隐式对象
5.buffer属性
buffer属性用于指定out隐式对象的缓冲区大小,其默认值因服务器而定,一般为8kb。如果将属性设置为none,则out对象不使用缓冲区
6.autoFlash属性
autoFlash属性用于设置当out隐式对象的缓冲区已满时,是将其中的内容刷新到客户端还是抛出缓冲区溢出的异常。其默认值为true,表明缓冲区满时刷新其中的内容。如果将buffer的属性设置为none,则不能把autoFlash属性设置为false。因为将buffer设置为none,则表示缓冲区总是满的情况,将autoFlash设置为false则会产生冲突
7.isThreadSafe属性
isThreadSafe用于设置JSP页面是否线程安全,是否需要让JSP页面翻译成的Servlet实现SingleThreadModel接口。默认值为true,表明JSP页面开发者已经考虑到了线程安全,不需要实现SingleThreadModel接口,请务必如此,原因自行百度
8.info属性
info属性用于将一个文本字符串定义为JSP页面翻译成的Servlet的描述信息,可以通过Servlet.getServletInfo获得该字符串
9.errorPage属性
errorPage属性用于指定是否设置另一个JSP页面来处理当前JSP页面发生的异常。如果当前JSP产生了未捕获的异常,则跳转到另外那个JSP页面去处理。值必须采用相对路径,根目录为web应用程序目录。
10.IsErrorPage属性
isErrorPage属性用于设置当前页面是否是专门用于处理其他页面的未捕获异常的JSP页面,其默认值未false。只有明确指定当前属性未true时,才可以使用exception隐式对象。
11.contentType属性
contentType属性用于设置响应正文的MIME类型和JSP文件中的文本内容的字符集编码。contentType属性的默认MIME类型为text/html,默认字符集为ISO-8859-1。
12.pageEncoding属性
pageEncoding属性用于指定JSP源文件中的字符所使用的字符集编码。如果设置了page指令的pageEncoding属性,contentType属性就不再具有说明JSP源文件的字符集编码的作用了。如果JSP页面没有设置contentType属性,那么pageEncoding属性还具有指定Servlet运行时输出给客户端响应正文的字符集编码的作用。
13.isELIgnored属性
isELIgnored属性用于指定当前JSP页面是否支持EL表达式。如果Servlet版本不低于2.4,则默认值为false,支持EL表达式,如果低于2.4,则默认值为true,表示不支持EL表达式。