|          
<%! 变量,方法和类声明区 (Declarations) %> 在此所声明的变量,方法和类都会被保留成唯一的一份,直到此JSP程序停止执行为止,都会一直存在;也就是说,所有请求服务都是共用这一份,它是同时被共享的。例如:
 <%!
 int i;
 void method(){}
 %>
 <% 程序代码区 (Scriptlets) %>
 可放入任何标准的JAVA程序代码。
 <%= 输出表达式 (Expressions) %>
 必须是字符串或执行的结果可以被转成字符串类型。例如:
 <%= "任何字符" %>
 <%-- 注解区 (Comments) --%>
 注解的内容是不会被执行的。而除了这种方式之外,你也可以用下面两种方式来注解:
 <% // 注解 %>
 <% /* 注解 */ %>
 page编译指令
 Page编译指令是用来设定JSP程序个别的属性和它与JSP Container要如何沟通,也就是告诉JSP Engine该如何执行这个JSP程序,以服务来自客户端的请求。
 语法
 <%@ page Attribute_List %>
 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程序内。
 语法
 <%@ include file="fileURLSpec" %>
 fileURLSpec必须是本地端的文件路径加上文件名称。
 taglib编译指令
 taglib编译指令是用来扩展JSP程序的动作指令。
 语法
 <%@ tablib url="tagLibrary" prefix="prefix" %>
 说明
 url 属性用来执行标签定义库的存放地址。
 prefix 属性用来定义标签的前置字符串,以与默认的标签做分别。
 jsp:useBean
 语法
 1. <jsp:useBean id="name" scope="page|request|session|application" typeSpec />
 和
 2. <jsp:useBean id="name" scope="page|request|session|application" typeSpec >
 body
 </jsp:useBean>
 这个动作指令可以包含或不包含body,不包含的形式如上面的第一项,直接以"/>"结束整个指令。包含body的形式如上面的第二项,body的内容可以是合法的jsp程序代码或<jsp:setProperty.../>标签,也可以是一般的html码,最后则以</jsp:useBean>结束整个指令。要注意的是body只有在Bean被建立的时候才会被执行。
 jsp:setProperty动作指令
 语法
 <jsp:setProperty name="BeanName" PropertyExpr />
 
 PropertyExpr ::= property="*" |
 property="PropertyName" |
 property="PropertyName" value=PropertyValue" |
 property="PropertyName" name=Propertyname" |
 说明
 name 属性用来指定Bean的名称,这个Bean必须已经存在。
 PropertyExpr 可以是上述四个组合中的一个。
 <jsp:setProperty>用来搭配<jsp:useBean>一起使用,指定Bean的属性值。
 jsp:getProperty动作指令
 语法
 1. <jsp:getProperty name="BeanName" Property="PropertyName" />
 <jsp:getProperty>用来搭配<jsp:Bean>一起使用,指定Bean的属性值。
 说明
 name 属性用来指定Bean的名称,这个Bean必须已经存在。
 Property 属性用来指定要读取的属性名称,PropertyName必须是Bean的属性值。
 jsp:include动作指令
 语法
 <jsp:include page="URLSpec" flush="true" />
 和
 <jsp:include page="URLSpec" flush="true" >
 { <jsp:pram name="ParameterName" value="ParameterValue" /> }*
 </jsp:include>
 <jsp:include>可以动态地将一个Html或JSP程序文件嵌入于JSP程序中。
 说明
 page 属性用来指定要嵌入的Html或JSP程序文件。
 flush 是指是否要将结果立即打印出来,它的值必须设定为true,因为false在JSP1.1中是无效的设定值。
 jsp:forward动作指令
 语法
 <jsp:forward page="URLSpec" />
 和
 <jsp:forward page="URLSpec" flush="true" >
 { <jsp:param name="ParameterName" value="ParameterValue" /> }*
 </jsp:forward>
 说明
 <jsp:forward>可以将一个JSP的内容送到page所指定JSP程序或是servlet类中做处理然后直接将结果传回客户端。
 jsp:param动作指令
 语法
 <jsp:param name="parameterName" value="parameterValue"/ >
 说明
 jsp:param 用来搭配jsp:forward,jsp:include和jsp:plugin一起使用,可用来传递参数。
 jsp:plugin动作指令
 语法
 <jsp:plugin type="bean|applet"
 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"}
 {
 <jsp:params>
 {<jsp:param name="parameterName" value="parameterValue" />}+
 </jsp:params>
 }
 {
 <jsp:fallback> arbitrary_text </jsp:fallback>
 }
 </jsp:plugin>
 说明
 jsp:plugin 可动态下载服务器端的Java Bean或Applet到客户端的浏览器上执行,也就是直接在浏览器上执行JAVA的程序,和Html嵌入Applet的方式相似。
 |