在JSP文件中,你可以通过命令定义整个JSP页面的属性,通过这个命令定义的属性会在本JSP文件中和包含近来的静态JSP页面起作用,但不会对动态包含文件起作用的。此命令的语法比较复杂一些,下面就是语法定义:
[ 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="relativeURL" ]
[ contentType="mimeType [ ;charset=characterSet ]" | "text/html ; charset=ISO-8859-1" ]
[ isErrorPage="true | false" ]
%
下面是使用Page命令的几个小例子:
通过Page命令,你可以为整个JSP页面定义上面提到的全局属性,其中除了"import"之外,其他的都只能引用一次,import属性和Java语言中的import非常相似,你可以在JSP页面中多次使用他。
关于的位置你可以不去考虑,放在任何地方,他都可以很好的工作,但出于良好的编程习惯,最好还是将他放在JSP页面的顶部。
好,下面我们就语法中提到的各种属性进行一一讲解:
language="java"
说明在你的JSP文件中使用的脚本语言,目前只能使用java。
extends="package.class"
声明在你的JSP页面中将要使用的Java超级类的名称,但使用的时候应该谨慎,因为使用他会限制JSP页面的编译能力。
import="{package.class | package.* }, ..."
使用这个属性,你可以将Java包包含到你的JSP页面中。如果你要包含多个包的话,将这些包的名称用逗号隔开放在一个import中,或者使用多个import分别声明。
下面一些Java包,是默认包含的,你不用再在你的JSP页面中,显式声明他们了:
java.lang.*
javax.servlet.*
javax.servlet.jsp.*
javax.servlet.http.*
最后,你一定要注意在你的JSP文件中,在你使用某个包含在某个Java包中的元素之前一定要先声明该包的import引用。
session="true|false"
定义是否在客户浏览你的JSP页面的时候要使用HTTP的session。如果值为true,则可以使用session对象;如果值为false,则不能使用session对象或定义了scope=session的元素了。否则会出错。默认值为true。
buffer="none|8kb|sizekb"
为out对象指定发送信息到客户端浏览器的信息缓存大小。以kilobyte为单位。默认值是8kb.你也可以自行指定缓存的大小。
autoFlush="true|false"
指定是否当缓存填满时自动刷新,输出缓存中的内容。如果为true,则自动刷新。否则,当缓存填满后,可能会出现严重的错误。当你把buffer设置为none时,你就不能将buffer设置为false。
isThreadSafe="true|false"
指定JSP页面是否支持多线程访问。默认值是ture,表示可以同时处理多个客户请求,但是你应该在JSP页面中添加处理多线程的同步控制代码。如果设置为false,JSP页面在一个时刻就只能响应一个请求。
info="text"
指定一段字符,并插入到JSP文件中,并可以通过Servlet.getServletInfo()方法得到。
errorPage="relativeURL"
设置处理异常事件的JSP文件的位置。
isErrorPage="true|false"
设置是否显示错误信息。如果为true,你可以看到出错信息,如果为false,你就看不到了。
contentType="mimeType [; charset=characterSet ]" | "text/html;charset=ISO-8859-1"
指定JSP页面发送到客户端的信息使用的MIME类型和字符编码类型。默认的MIME类型是text/html,默认的字符集是ISO-8859-1。
最后,如果在你的多个JSP页面中都要使用来定义全局属性的话,你可以将此命令单独在一个JSP页面中进行定义,然后在所有使用此命令的页面中包含进去就可以了。