<jsp:include page="relative URL" flush="true" /> |
<HTML> <HEAD> <TITLE> JSP教程</TITLE> <BODY > <CENTER> <TABLE BORDER=5 BGCOLOR="#EF8429"> <TR><TH CLASS="TITLE"> What"s New at Chinese comic sites</TABLE> </CENTER> <P> Here is a summary of our four most recent news stories: <OL> <LI><jsp:include page="news/Item1.html" flush="true"/> <LI><jsp:include page="news/Item2.html" flush="true"/> <LI><jsp:include page="news/Item3.html" flush="true"/> <LI><jsp:include page="news/Item4.html" flush="true"/> </OL> </BODY> </HTML> |
<jsp:useBean id="beanInstanceName" scope="page|request|session|application" { class="package.class" | type="package.class" | class="package.class" type="package.class" | beanName="{package.class | <%= expression %>}" type="package.class" } { /> | > 其他元素 </jsp:useBean> } |
<jsp:useBean id="name" class="package.class" /> |
这通常意味着“实例化一个类的对象通过指定一个类,并将之与一个通过id指定名称的变量绑定”。然而,就象我们看到的,您可以指定一个scope属性来使得bean不仅仅与当前的页面相联系。在这种情形下,得到一个对已存在的bean的引用是非常有用的,而且,仅当没有相同的id和scope的bean存在时才创建一个新的。现在,您已有了bean,您可以通过jsp:setProperty来修改它,或者,通过使用之前用id指定的名字来使用scriptlet或明确的调用方法。当您说“这个bean有一个称为foo的X类型的属性”,您真正的意思是“这个类有一个称为getFoo的方法,它返回X类型的某类值,还有另一个方法称为setFoo,它以X为参数。”这jsp:setProperty action 将在下一单元详细的介绍,但是现在您既可以给出一个明确的值,给出一个属性来说明此值是从request的参数继承而来,也可以仅仅列出属性来标志此值应该从与属性名同名的参数继承而来。您可以通过调用适用的getXxx方法,或更普遍的,使用jsp:getProperty action,来得到已存在的JSP表达式或scriptlet属性。
请注意,为bean指定的类必须在服务器的规则的类路径下,而不是用来保留当改变时自动装载的类的路径。例如,在Java Web Server上,它和它所用的类必须到类的目录或在lib目录下的一个jar文件内,而不是在servlets的目录下。
下面让我们来看一个非常简单的例子,它装载一个bean并且设置/得到一个简单的串参数。
BeanTest.jsp
<HEAD> <TITLE>Reusing JavaBeans in JSP</TITLE> </HEAD> <BODY> <CENTER> <TABLE BORDER=5> <TR><TH CLASS="TITLE"> Reusing JavaBeans in JSP</TABLE> </CENTER> <P> <jsp:useBean id="test" class="hall.SimpleBean" /> <jsp:setProperty name="test" property="message" value="Hello WWW" /> <H1>Message: <I> <jsp:getProperty name="test" property="message" /> </I></H1> </BODY> |
package hall; public class SimpleBean { private String message = "No message specified"; public String getMessage() { return(message); } public void setMessage(String message) { this.message = message; } } |
<jsp:useBean id="name" class="package.class"/> |
<jsp:useBean ...> Body </jsp:useBean> |
属性 | 含义 |
id | 给一个变量命名,此变量将指向bean。如果发现存在一个具有相同的id和scope 的bean则使用之而不新建一个。 |
class | 指出bean的完整的包名。 |
scope | 指明bean在之上可以被使用的前后关系。有四个可能的值:page,request,session,和application。缺省为page,表明bean仅在当前页可用(保存在当前的PageContext中)。request的一个值表明bean仅用于当前客户端的请求(保存在ServletRequest对象中)。Session的值指出在当前的HttpSession的生命周期内,对象对所有的页面可用。 最后,application的值指出对象对所有共享ServletsContext的页面可以使用。使用jsp:useBean 仅在没有相同的id和scope 的bean时创建一个新的bean,如果已有则使用之,并忽略以jsp:useBean标志开始和结尾的代码。 |
type | 指明将指向对象的变量的类型。这必须与类名相匹配或是一个超类或者是一个实现类的接口。记住,变量的名由id属性来指定。 |
beanName | 赋予bean一个名字,您应该在Beans的实例化方法中提供。它允许您给出type和一个beanName,并省略类属性。 |
<jsp:setProperty name="beanInstanceName" { property="*" | property="propertyName" [ param="parameterName" ] | property="propertyName" value="{string | <%= expression %>}" } /> |
<jsp:useBean id="myName" ... /> ... <jsp:setProperty name="myName" property="someProperty" ... /> |
<jsp:useBean id="myName" ... > ... <jsp:setProperty name="myName" property="someProperty" ... /> </jsp:useBean> |
属性 | 用法 |
name | 这是一个必选属性。它指出哪一个bean的属性将被设置。jsp:usebean必须出现在jsp:setProperty之前。 |
property | 这是一个必选属性。表明您将设置哪一个属性。然而,有一个特殊的情况:如果以"*"为值意味着,所有的名称与bean的属性匹配的request参数都将被传递到相应的属性设置方法。 |
value | 这是一个可选属性。它指定被设置的属性的值。字符串的值通过相应的对象或包的标准的valueOf方法将自动的转换为numbers,boolean,Boolean,byte,Byte,char,和Character。例如,boolean或Boolean属性的值“true”将通过Boolean.valueOf方法转化,而,一个int或Integer属性的值“42”将通过Integer.valueOf转化。您不能同时使用value和param属性,但,两个都不用是允许的。 |
param | 这是一个可选属性。它指明了bean的属性应该继承的request的参数。如果当前的request没有这样的一个参数,就什麽也不做:系统并不将null传给设置属性的方法。因此,您可以使用bean的缺省值。例如下面的这段程序执行“将numberOfItems属性设置为任意numItems request参数的值,如果有这样的一个request参数,否则什么也不做。” <jsp:setProperty name="orderBean" property="numberOfItems" param="numItems" /> |
<jsp:getProperty name="beanInstanceName" property="propertyName" /> |
<HTML> <HEAD> <TITLE> Document </TITLE> </HEAD> <BODY BGCOLOR="#FFFFFF"> session.setAttribute("str",new String(“this is test”)); </BODY> </HTML> test2.jsp <HTML> <HEAD> <TITLE> New Document </TITLE> </HEAD> <BODY BGCOLOR="#FFFFFF"> <% String ls_str=null; ls_str=(String)session.getAttribute("str"); out.println(“从session里取出的值为:”+ls_str); %> </BODY> </HTML> |
JSP页面上使用你可以使用Taglib Directive来自定义标签定义一个标签库和前缀。
|
<jsp:plugin type="bean|applet" code="classFileName" codebase="classFileDirectoryName" [ name="instanceName" ] [ archive="URIToArchive, ..." ] [ align="bottom|top|middle|left|right" ] [ height="displayPixels" ] [ width="displayPixels" ] [ hspace="leftRightPixels" ] [ vspace="topBottomPixels" ] [ jreversion="JREVersionNumber | 1.1" ] [ nspluginurl="URLToPlugin" ] [ iepluginurl="URLToPlugin" ] > [ <jsp:params> [ <jsp:param name="parameterName" value="{parameterValue | <%= expression %>}" /> ]+ </jsp:params> ] [ <jsp:fallback> text message for user </jsp:fallback> ] </jsp:plugin> 示例: <jsp:plugin type=applet code="Molecule.class" codebase="/html"> <jsp:params> <jsp:param name="molecule" value="molecules/benzene.mol" /> </jsp:params> <jsp:fallback> <p>Unable to load applet</p> </jsp:fallback> </jsp:plugin> |
属性
|
用法
|
type = “bean | applet” |
插件将执行的对象的类型。您必须在bean或applet中指定一个,因为,这个属性没有缺省值。 |
class=”classFileName” |
插件将执行的JAVA类文件的名称。在名称中您必须包含扩展名。且此文件必须在用“codebase”属性指明的目录下。 |
codebase=“classFileDirectoryName” |
包含插件将运行的JAVA类的目录或指向这个目录的路径。缺省为此JSP文件的路径。 |
name=”instanceName” |
Bean或 applet的实例的名称。使得被同一个JSP文件调用的bean或 applet之间的通信成为可能。 |
archive = “URLToArchive,…” |
以逗号分隔的路径名列表。是那些用以codebase指定的目录下的类装载器预装载的存档文件所在的路径名。通常,这些存档文件通过网络被安全的加载,可以显著的提高applet的性能。 |
语法
|
目的
|
<%-- 注释 --%> | JSP形式的注释。将被JSP-to-scriptlet编译器所忽略。任何内嵌JSP scripting elements,directives,或actins都将被忽略。例: <%@ page language="java" %> <html> <head><title>A Comment Test</title></head> <body> <h2>A Test of Comments</h2> <%-- 这部分注释将不会在查看源代码的时候看到 --%> </body> </html> |
<!-- 注释--> | HTML形式的注释。直接传送到最终的HTML。任何内嵌JSP scripting elements,directives,或actins都将被正常的执行。例: <!-- This page was loaded on <%= (new java.util.Date()).toLocaleString() %> --> 查看源代码时将看到: <!-- This page was loaded on January 1, 2000 --> |
<\% | 在template text(静态HTML)中,当您想在页面上输出这个特殊符号(<%)时请如此书写。 |
%\> | 在scripting elements中使用,作用与上面的“</%”类似。 |
\’ | 在使用了“’”的属性中表明是字符“’”。当然,您也可以使用“””来作为区分。例:’ pig”fhjgj” ’,或,’pig\’fhjgj\’’ |
\” | 在使用了“””的属性中表明是字符“””。当然,您也可以使用“’”来作为区分。例:” pig’fhjgj’”,或,”pig\”fhjgj\”” |
%\> | 在属性中的“%>”。 |
<\% | 在属性中的“<%”。 |
JSP中使用jsp forward Action来实现页面的跳转功能。
语法:
<jsp:forward page="{relativeURL|<%= expression %>}"/> 或 <jsp:forward page="{relativeURL|<%= expression %>}"> <jsp:param name="parameterName" value="{parameterValue|<%= expression %>}"/>+</jsp:forward> |
<jsp:forward page="/utils/errorReporter.jsp"/> <jsp:forward page="<%= someJavaExpression %>"/> !supportEmptyParas]> |
<HTML> <HEAD> <TITLE>forward test</TITLE> !supportEmptyParas]> </HEAD> !supportEmptyParas]> <BODY BGCOLOR="#FFFFFF"> <!--跳转到test2.jsp--!> <jsp:forward page="/test2.jsp"/> </BODY> </HTML> !supportEmptyParas]> |
<HTML> <HEAD> <TITLE> forward test </TITLE> !supportEmptyParas]> </HEAD> !supportEmptyParas]> <BODY BGCOLOR="#FFFFFF"> <%out.println("这是jsp2.jsp页面产生出的输出");%> </BO #@62; </HTML> !supportEmptyParas]> |
!supportEmptyParas]> Test1.jsp <HTML> <HEAD> <TITLE> forward test </TITLE> !supportEmptyParas]> </HEAD> !supportEmptyParas]> <BODY BGCOLOR="#FFFFFF"> <jsp:forward page="/test4.jsp"> <jsp:param name="name" value="powerman"/> <jsp:param name="address" value=" 北京西大街188号"/> </jsp:forward> </BODY> </HTML> !supportEmptyParas]>
</HEAD> !supportEmptyParas]> <BODY BGCOLOR="#FFFFFF"> <% out.println("这是jsp4.jsp页面产生出的输出"+"<br>"); out.println("姓名:"+request.getParameter("name")+"<br>"); out.println("地址:"+request.getParameter("address")+"<br>"); !supportEmptyParas]> %> </BODY> </HTML> |
<HTML> <HEAD> <TITLE>forward test</TITLE> !supportEmptyParas]> </HEAD> !supportEmptyParas]> <BODY BGCOLOR="#FFFFFF"> <!--跳转到test2.jsp--!> <jsp:forward page="/test2.jsp"/> </BODY> </HTML> !supportEmptyParas]> |
<HTML> <HEAD> <TITLE> forward test </TITLE> !supportEmptyParas]> </HEAD> !supportEmptyParas]> <BODY BGCOLOR="#FFFFFF"> <%out.println("这是jsp2.jsp页面产生出的输出");%> </BO #@62; </HTML> !supportEmptyParas]> |
!supportEmptyParas]> Test1.jsp <HTML> <HEAD> <TITLE> forward test </TITLE> !supportEmptyParas]> </HEAD> !supportEmptyParas]> <BODY BGCOLOR="#FFFFFF"> <jsp:forward page="/test4.jsp"> <jsp:param name="name" value="powerman"/> <jsp:param name="address" value=" 北京西大街188号"/> </jsp:forward> </BODY> </HTML> !supportEmptyParas]>
</HEAD> !supportEmptyParas]> <BODY BGCOLOR="#FFFFFF"> <% out.println("这是jsp4.jsp页面产生出的输出"+"<br>"); out.println("姓名:"+request.getParameter("name")+"<br>"); out.println("地址:"+request.getParameter("address")+"<br>"); !supportEmptyParas]> %> </BODY> </HTML> |
<jsp:include page="relative URL" flush="true" /> |
<HTML> <HEAD> <TITLE> JSP教程</TITLE> <BODY > <CENTER> <TABLE BORDER=5 BGCOLOR="#EF8429"> <TR><TH CLASS="TITLE"> What"s New at Chinese comic sites</TABLE> </CENTER> <P> Here is a summary of our four most recent news stories: <OL> <LI><jsp:include page="news/Item1.html" flush="true"/> <LI><jsp:include page="news/Item2.html" flush="true"/> <LI><jsp:include page="news/Item3.html" flush="true"/> <LI><jsp:include page="news/Item4.html" flush="true"/> </OL> </BODY> </HTML> |
<jsp:useBean id="beanInstanceName" scope="page|request|session|application" { class="package.class" | type="package.class" | class="package.class" type="package.class" | beanName="{package.class | <%= expression %>}" type="package.class" } { /> | > 其他元素 </jsp:useBean> } |
<jsp:useBean id="name" class="package.class" /> |
<HEAD> <TITLE>Reusing JavaBeans in JSP</TITLE> </HEAD> <BODY> <CENTER> <TABLE BORDER=5> <TR><TH CLASS="TITLE"> Reusing JavaBeans in JSP</TABLE> </CENTER> <P> <jsp:useBean id="test" class="hall.SimpleBean" /> <jsp:setProperty name="test" property="message" value="Hello WWW" /> <H1>Message: <I> <jsp:getProperty name="test" property="message" /> </I></H1> </BODY> |
package hall; public class SimpleBean { private String message = "No message specified"; public String getMessage() { return(message); } public void setMessage(String message) { this.message = message; } } |
<jsp:useBean id="name" class="package.class"/> |
<jsp:useBean ...> Body </jsp:useBean> |
属性 | 含义 |
id | 给一个变量命名,此变量将指向bean。如果发现存在一个具有相同的id和scope 的bean则使用之而不新建一个。 |
class | 指出bean的完整的包名。 |
scope | 指明bean在之上可以被使用的前后关系。有四个可能的值:page,request,session,和application。缺省为page,表明bean仅在当前页可用(保存在当前的PageContext中)。request的一个值表明bean仅用于当前客户端的请求(保存在ServletRequest对象中)。Session的值指出在当前的HttpSession的生命周期内,对象对所有的页面可用。 最后,application的值指出对象对所有共享ServletsContext的页面可以使用。使用jsp:useBean 仅在没有相同的id和scope 的bean时创建一个新的bean,如果已有则使用之,并忽略以jsp:useBean标志开始和结尾的代码。 |
type | 指明将指向对象的变量的类型。这必须与类名相匹配或是一个超类或者是一个实现类的接口。记住,变量的名由id属性来指定。 |
beanName | 赋予bean一个名字,您应该在Beans的实例化方法中提供。它允许您给出type和一个beanName,并省略类属性。 |
三、jsp:setProperty Action 语法:
在前面我们就知道了可以使用 jsp:setProperty 来为一个bean的属性赋值。您可以使用两种方式实现它。其一是,在jsp:useBean后(而不是在之内)使用jsp:setProperty:
在这种方式中,jsp:setProperty 将被执行无论是否已有一个具有相同的id和scope的bean存在。另一种方式是,jsp:setProperty出现在jsp:useBean 元素内,如:
此种情况下,jsp:setProperty仅在新的对象被实例化时才执行。 以下是四种jsp:setProperty的可用的属性:
如果您将value和param同时缺省,这和您将param的名称设为bean的属性名相同一样。您可以通过将name的值设置为”*”和省略value和param来自动的使用与bean的属性相应的request的属性。在这种情况下,服务器将反复的查找可用的属性和request参数来匹配具有相同名字的。 四、jsp:getProperty Action 语法:
这个属性检索出bean的属性的值并将之转化为一个字符串,然后将之插入到输出。它有两个必选属性:name,在之前用jsp:useBean引入的名称,property,必须被插入值的属性。 |
<JSP directive mso-hansi-font-family:"">影响servlet 类的整体结构
<JSP directive mso-hansi-font-family:"">影响servlet 类的整体结构。它常用以下形式:
<%@ directive attribute=”value”%> |
<%@ directive attribute1="value1" attribute2="value2" attributeN="valueN" %> |
<%@ page [ language="java" ] [ extends="package .class" ] [ import="{package .class | .*}, ..." ] [ 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 import="java.util.*" %> |
<%@ page contentType="text/plain" %>" |
<% response.setContentType("text/plain"); %> |
<jsp:include page="{relativeURL | <%= expression %>}" flush="true" />mso-hansi-font-family:";mso-font-kerning: 0pt">或 <jsp:include page="{relativeURL | <%= expression %>}" flush="true" > <jsp:param name="parameterName" value="{parameterValue | <%=expression %>}" />+ </jsp:include> |
<HTML> <HEAD> <TITLE> JSP教程</TITLE> </HEAD> <BODY> <%@ include file="/navbar.html" %> <!— 本页面的其他部分... --> </BODY> </HTML> |
<%@ directive attribute=”value”%> |
<%@ directive attribute1="value1" attribute2="value2" attributeN="valueN" %> |
<%@ page [ language="java" ] [ extends="package .class" ] [ import="{package .class | .*}, ..." ] [ 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 import="java.util.*" %> |
<%@ page contentType="text/plain" %>" |
<% response.setContentType("text/plain"); %> |
<jsp:include page="{relativeURL | <%= expression %>}" flush="true" />mso-hansi-font-family:";mso-font-kerning: 0pt">或 <jsp:include page="{relativeURL | <%= expression %>}" flush="true" > <jsp:param name="parameterName" value="{parameterValue | <%=expression %>}" />+ </jsp:include> |
<HTML> <HEAD> <TITLE> JSP教程</TITLE> </HEAD> <BODY> <%@ include file="/navbar.html" %> <!— 本页面的其他部分... --> </BODY> </HTML> |
JSP 元素 | 语法 | 解释 |
JSP Expression | <%= 表达式 %> | Expression 用于计算并用于输出。 <jsp:exp 发表评论
最新评论
|
评论