国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
利用JSP 2.0開發(fā)Web應(yīng)用程序
                                                                    利用JSP 2.0開發(fā)Web應(yīng)用程序
定義和使用函數(shù)

  表達(dá)式語言允許你定義可在表達(dá)式中調(diào)用的函數(shù)。函數(shù)必須作為public類中的public static方法編寫。函數(shù)一經(jīng)定義,它的簽名(signature)就映射到標(biāo)簽庫描述符(TLD)中。

  為了說明函數(shù)的使用,我們舉一個簡單的例子,把兩個數(shù)相加。首先要編寫求兩數(shù)之和的Java方法代碼,如代碼示例3所示,這里定義了一個靜態(tài)方法,它接收兩個字符串參數(shù),把它們解析成整數(shù)并返回它們的和。

  代碼示例3: Compute.java

package jsp2.examples.el;
import java.util.*;
public class Compute {
 public static int add(String x, String y) {
  int a = 0;
  int b = 0;
  try {
   a = Integer.parseInt(x);
   b = Integer.parseInt(y);
  }catch(Exception e) {
  }
  return a + b;
 }
}

  用javac把這段代碼編譯成功后,下一步就要把函數(shù)的簽名映射到標(biāo)簽庫。代碼示例4說明了如何把a(bǔ)dd函數(shù)映射到包含函數(shù)實現(xiàn)和函數(shù)簽名的類。后面將說明把這段代碼添加到哪兒。

  代碼示例4: 函數(shù)描述符

<function>
?。糳escription>add x and y</description>
?。糿ame>add</name>
 <function-class>jsp2.examples.el.Compute </function-class>
?。糵unction-signature>int add(java.lang.String,java.lang.String) </function-signature>
</function>

  現(xiàn)在我們就可以編寫一個JSP頁面來使用這個函數(shù)。代碼示例5是包含兩個字段的一個表單,用戶輸入兩個數(shù)字并按下“求和”按鈕,就會調(diào)用上面的函數(shù)并把兩個數(shù)相加,結(jié)果在同一個頁面中顯示出來。

  代碼示例5: math.jsp

<%@ taglib prefix="my" uri="http://jakarta.apache.org/tomcat/jsp2-example-taglib %>
<HEAD><TITLE>Functions</TITLE></HEAD>
<BODY>
<H3>Add Numbers</H3>
<P>
<FORM action="math.jsp" method="GET"> X = <input type="text" name="x" value="${ param["x"]}">
<BR>
Y = <input type="text" name="y" value="${param["y"]}">
<input type="submit" value="Add Numbers">
</FORM>
<P>The sum is: ${my:add(param["x"],param["y"])}
</BODY>
</HTML>

  要運行這個例子:

  復(fù)制Compute.java并保存到C:\Tomcat5.0\webapps\jsp-examples\WEB-INF\classes\jsp2\examples\el下;使用javac編譯Compute.java;編輯文件C:\Tomcat5.0\webapps\jsp-examples\WEB-INF\jsp2\jsp2-example-taglib.tld,把代碼示例4中的代碼段添加到文件中最后一個</function>標(biāo)簽之后,</taglib>標(biāo)簽之前;復(fù)制math.jsp并保存到c:\Tomcat5.0\webapps\jsp-examples\jsp2-tutorial下;用瀏覽器打開該文件。

  如果一切正常,應(yīng)該會看到類似如圖3所示的窗口。


圖3:使用函數(shù)

  標(biāo)簽處理器

  JSP 1.2中傳統(tǒng)的標(biāo)簽處理API由于允許標(biāo)簽體中包含scriptlet而變得復(fù)雜,但是現(xiàn)在利用表達(dá)式語言可以編寫不含scriptlet的JSP網(wǎng)頁。最終,JSP 2.0引入了一種新的標(biāo)簽擴(kuò)展機(jī)制,稱為“簡單標(biāo)簽擴(kuò)展”,這種機(jī)制有兩種使用方式:

  Java開發(fā)人員可以定義實現(xiàn)接口javax.servlet.jsp.tagext.SimpleTag的類; 不懂Java的網(wǎng)頁編寫人員則可以使用標(biāo)簽文件。

  首先來看第一種方式,代碼示例6給出了一個簡單的標(biāo)簽處理器,它的作用僅僅是打印“This is my first tag! ”。

  代碼示例6: HelloTag.java

package jsp2.examples.simpletag;
import javax.servlet.jsp.JspException;import javax.servlet.jsp.tagext.SimpleTagSupport;
import java.io.IOException;
/** * SimpleTag handler that prints "This is my first tag!" */ public class HelloTag extends SimpleTagSupport {
 public void doTag() throws JspException, IOException {
  getJspContext().getOut().write("This is my first tag!");
 }
}

  編譯成功后,下一步就要在TLD中定義一個標(biāo)簽描述符,下面是標(biāo)簽描述符的例子。

  代碼示例7: 標(biāo)簽描述符

<tag>
 <description>Prints this is my first tag</description>
?。糿ame>hello</name>
?。紅ag-class>jsp2.examples.simpletag.HelloTag</tag-class>
 <body-content>empty</body-content>
</tag>

  最后再編寫一個使用上述標(biāo)簽的JSP頁面文件,見代碼示例8。

  代碼示例8: helloworld.jsp

<%@ taglib prefix="mytag" uri="/WEB-INF/jsp2/jsp2-example-taglib.tld" %>
<HTML>
<HEAD>
<TITLE>Simple Tag Handler</TITLE>
</HEAD>
<BODY>
<H2>Simple Tag Handler</H2>
<P>
<B>My first tag prints</B>: <mytag:hello/>
</BODY>
</HTML>

  要運行這個例子:

  復(fù)制HelloTg.java并保存到C:\Tomcat5.0\webapps\jsp-examples\WEB-INF\classes\jsp2\examples\simpletag下;使用javac編譯HelloTag.java;把代碼示例7中的標(biāo)簽描述符添加到文件C:\Tomcat5.0\webapps\jsp-examples\WEB-INF\jsp2\jsp2-example-taglib.tld中的</taglib>之前;復(fù)制helloworld.jsp并保存到c:\Tomcat5.0\webapps\jsp-examples\jsp2-tutorial目錄中;用瀏覽器打開helloworld.jsp。

  如果一切正常,應(yīng)該會看到類似如圖4所示的畫面。


圖4:簡單標(biāo)簽處理器
  標(biāo)簽文件

  使用簡單標(biāo)簽擴(kuò)展機(jī)制的另一種方法是通過標(biāo)簽文件。標(biāo)簽文件是一種資源文件,網(wǎng)頁作者可以利用它抽取一段JSP代碼,通過定制功能來實現(xiàn)代碼的復(fù)用。換句話說,標(biāo)簽文件允許JSP網(wǎng)頁作者使用JSP語法創(chuàng)建可復(fù)用的標(biāo)簽庫。標(biāo)簽文件的擴(kuò)展名必須是“.tag”。

  為說明使用標(biāo)簽文件是多么容易,考慮一下代碼示例9。沒錯,這就是一個標(biāo)簽文件!

  代碼示例9: greetings.tag

Hello there. How are you doing?

  一旦定義了標(biāo)簽文件,就可以在JSP網(wǎng)頁的編寫中使用這種定制的功能。比如代碼示例10中的JSP網(wǎng)頁。

  代碼示例10: chat.jsp

<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
<HTML>
<HEAD>
<TITLE>JSP 2.0 Examples - Hello World Using a Tag File</TITLE>
</HEAD>
<BODY>
<H2>Tag File Example</H2>
<P>
<B>The output of my first tag file is</B>: <tags:greetings/>
</BODY>
</HTML>

  要運行這個例子:

  復(fù)制標(biāo)簽文件greetings.tags并保存在c:\Tomcat5.0\webapps\jsp-examples\WEB-INF\tags 目錄下;復(fù)制JSP網(wǎng)頁文件char.jsp并保存在c:\Tomcat5.0\webapps\jsp-examples\jsp2-tutorial 目錄下;用瀏覽器打開chat.jsp文件。

  如果一切正常,應(yīng)該會看到類似如圖5所示的窗口。


圖5:簡單的標(biāo)簽文件

  --------------------------------------------------------------------------------

  注意: 重要的是要注意到這里沒有為問候標(biāo)簽編寫TLD,而是創(chuàng)建了一個標(biāo)簽文件并放在特殊的目錄中,然后用taglib指令導(dǎo)入并直接使用它。
  --------------------------------------------------------------------------------

  另一個標(biāo)簽文件的例子

  標(biāo)簽文件可以作為模板使用??紤]代碼示例11中的標(biāo)簽文件display.tag,這個例子是根據(jù)Tomcat 5.0中的面板的例子改寫的。指令attribute類似于TLD中的<attribute>元素,允許聲明自定義的動作屬性。

  代碼示例11: display.tag

<%@ attribute name="color" %><%@ attribute name="bgcolor" %><%@ attribute name="title" %>
<TABLE border="0" bgcolor="${color}">
<TR>
<TD><B>${title}</B> </TD>
</TR>
<TR>
<TD> bgcolor="${ bgcolor}"> <jsp:doBody/> </TD>
</TR>
</TABLE>


  代碼示例12給出了使用上述標(biāo)簽的一個簡單的JSP頁面。

  代碼示例12: newsportal.jsp

<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>
<HTML>
<HEAD>
<TITLE>Another Tag File Example</TITLE>
</HEAD>
<BODY>
<H2> News Portal: Another Tag File Example</H2>
<TABLE border="0">
<TR valign="top">
<TD>
<tags:display color="#ff0000" bgcolor="#ffc0c0" title="Travel">
Last French Concorde Arrives in NY
<br/> Another Travel Headline
<br/> Yet Another Travel Headline
<br/>
</tags:display>
</TD>
<TD>
<tags:display color="#00fc00" bgcolor="#c0ffc0" title="Technology">
Java for in-flight entertainment
<BR>
Another Technology Headline
<BR>
Another Technology Headline
<BR>
</tags:display>
</TD>
<TD>
<tags:display color="#ffcc11" bgcolor="#ffffcc" title="Sports">
American Football<BR/>
NBA<BR/>
Soccer<BR/>
</tags:display>
</TD>
</TR>
</TABLE>
</BODY>
</HTML>

  要運行這個例子:

  復(fù)制文件display.tag并保存在c:\Tomcat5.0\webapps\jsp-examples\WEB-INF\tag 下;復(fù)制文件newsportal.jsp并保存到c:\Tomcat5.0\webapps\jsp-examples\jsp2-tutorial下;用瀏覽器打開newsportal文件。

  結(jié)果應(yīng)該會得到與圖6類似的畫面。


圖6:把標(biāo)簽文件用作模板

  結(jié)論

  JSP 2.0使得快速開發(fā)和維護(hù)動態(tài)網(wǎng)頁比以前更加容易,盡管“Java”一詞出現(xiàn)在JSP中,但使用JSP2.0,網(wǎng)頁作者無須學(xué)習(xí)Java程序語言本身,就能開發(fā)出全新的動態(tài)網(wǎng)頁。本文中的例子說明了使用JSP2.0的新特性開發(fā)動態(tài)網(wǎng)頁是多么容易。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
利用JSP 2.0開發(fā)Web應(yīng)用程序
Java及Web應(yīng)用
Java中動態(tài)獲取項目根目錄的絕對路徑
Tomcat與Java Web開發(fā)技術(shù)詳解連載之二
tomcat的webApps和work目錄
tomcat6.0.10里webapps的特性
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服