在此所声明的变量,方法和类都会被保留成唯一的一份,直到此JSP程序停止执行为止,都会一直存在;也就是说,所有请求服务都是共用这一份,它是同时被共享的。例如:
int i;
void method(){}
%
可放入任何标准的JAVA程序代码。
必须是字符串或执行的结果可以被转成字符串类型。例如:
注解的内容是不会被执行的。而除了这种方式之外,你也可以用下面两种方式来注解:
page编译指令
Page编译指令是用来设定JSP程序个别的属性和它与JSP Container要如何沟通,也就是告诉JSP Engine该如何执行这个JSP程序,以服务来自客户端的请求。
语法
Attribute_List :: { language = "scriptingLanguage" }
{ extends = "className" }
{ import = "importList" }
{ session = "true|false" }
{ buffer = "none|sizekb" }
{ autoFlush = "true|false" }
{ isTreadSafe = "true|false" }
{ info = "infoText" }
{ errorPage = "errorPageURL" }
{ isErrorPage = "true|false" }
{ contentType = "contentTypelnfo" }
language="scriptingLanguage"
设定所用的描述语言,默认值是"java",也是目前唯一有效的设定值。
extends="className"
设定所产生出来的class所要继承的java类别,这个属性一般都不需要去设定它,即使要设定,也必须非常小心,否则可能会影响JSP Engine的正常执行。默认值是HttpJspBase,它本身是实作HttpJspPage界面的类,可以参考javax.servlet.jsp.*所提供的API。
import="importList"
设定这个JSP程序所要用到的JAVA API或是自行定义的类。默认值是java.language.*,javax.servlet.*,javax.servlet.http.*,javax.servlet.jsp.* 和javax.servlet.jsp.tagext.*类。import是唯一可以重复设定的属性。
session="true|false
定义这个JSP程序是否要用到session。默认值是"true",session的功能是用来保留当多个JSP程序互动时所要同时参考到的对象;session对象的类类型是HttpSession。如果没有改变默认值的话,就可以直接在JSP程序内使用它,用它所提供的方法putValue()与getValueI()方法来存取所保留对象。
buffer="nonelsizekb
定义这个JSP程序所需要的缓冲区大小,单位是kb。默认值大小根据jsp1.1的规格说明是不小于8kb。
autoFlush="true|false"
定义这个JSP程序所用的buffer满时,是否自动将所产生内容输出到客户端,默认值是"true"。如果改变它的值为"false",则当buffer内容超出其所设定的值大小时,会产生overflow的exception。要特别注意的是当buffer设为"none",autoFlush不能不设成"false",否则会产生JSP程序转换时期的错误。
isThreadSafe=""true|false"
定义JSP Engine 执行JSP程序的方式,默认值是"true",这是告诉JSP Engine以多线程的方式同时服务多个来自客户端的请求,也就是说,这些请求会被JSP Engine以交互轮流的方式来执行完成。
如果isThreadSafe设成"false",则JSP Engine会为所产生出来的JAVA类实作一个SingleThreadModel界面,只要类实作了这个界面,就会以单线程的方式来服务多个来自客户端的请求,意即在服务完一个客户端的请求后才去服务另一个。
info="infoText
你可以用这个属性来描述有关JSP程序的说明文字,以Tomcat3.0的默认值是"Jasper JSP 1.1 Engine“,你可以用getServletInfo()来取得info的字符串。
errorPage="errorPageURL"
这属性是用来设定当JSP程序在处理客户端请求时,如果发生例外所要传送的网页。可以在JSP程序中可能发生例外的地方丢出一个继承自Throwable的例外对象。如果发生例外,JSP就会执行request.setAttribute,将你所丢出的例外对象传送到错误信息网页,然后传回你所指定的错误信息网页内容。如果没有设定的话,就以默认网页来传回错误信息。
isErrorPage="true|false"
这属性是用来设定这个JSP程序是否作为传回错误信息的网页,默认值是"false"。
contentType="contentTypeInfo"
这属性是用来设定传回网页的文件格式与编码方式,默认值是"text/html;charset=8859_1"。
include编译指令
include编译指令是用来将所指定的JSP程序或网页内容嵌入JSP程序内。
语法
fileURLSpec必须是本地端的文件路径加上文件名称。
taglib编译指令
taglib编译指令是用来扩展JSP程序的动作指令。
语法
说明
url 属性用来执行标签定义库的存放地址。
prefix 属性用来定义标签的前置字符串,以与默认的标签做分别。
jsp:useBean
语法
1.
和
2.
body
这个动作指令可以包含或不包含body,不包含的形式如上面的第一项,直接以"/>"结束整个指令。包含body的形式如上面的第二项,body的内容可以是合法的jsp程序代码或标签,也可以是一般的html码,最后则以结束整个指令。要注意的是body只有在Bean被建立的时候才会被执行。
jsp:setProperty动作指令
语法
PropertyExpr ::= property="*" |
property="PropertyName" |
property="PropertyName" value=PropertyValue" |
property="PropertyName" name=Propertyname" |
说明
name 属性用来指定Bean的名称,这个Bean必须已经存在。
PropertyExpr 可以是上述四个组合中的一个。
用来搭配一起使用,指定Bean的属性值。
jsp:getProperty动作指令
语法
1.
用来搭配一起使用,指定Bean的属性值。
说明
name 属性用来指定Bean的名称,这个Bean必须已经存在。
Property 属性用来指定要读取的属性名称,PropertyName必须是Bean的属性值。
jsp:include动作指令
语法
和
{ }*
可以动态地将一个Html或JSP程序文件嵌入于JSP程序中。
说明
page 属性用来指定要嵌入的Html或JSP程序文件。
flush 是指是否要将结果立即打印出来,它的值必须设定为true,因为false在JSP1.1中是无效的设定值。
jsp:forward动作指令
语法
和
{ }*
说明
可以将一个JSP的内容送到page所指定JSP程序或是servlet类中做处理然后直接将结果传回客户端。
jsp:param动作指令
语法
说明
jsp:param 用来搭配jsp:forward,jsp:include和jsp:plugin一起使用,可用来传递参数。
jsp:plugin动作指令
语法
code="JavaBean Name|Applet class Name"
codebase="ClassPath"
{align="alignment"}
{archive="archiveList"}
{height="height"}
{width="width"}
{hspace="hspace"}
{vspace="vspace"}
{jreversion="jreversion"}
{naem="componentName"}
{nspluginurl="url"}
{iepluginurl="url"}
{
{}+
}
{
arbitrary_text
}
说明
jsp:plugin 可动态下载服务器端的Java Bean或Applet到客户端的浏览器上执行,也就是直接在浏览器上执行JAVA的程序,和Html嵌入Applet的方式相似。