<%! 变量,方法和类声明区 (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的方式相似。
|