自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

JSTL介紹—JSP編程新組件 允許用標(biāo)簽編程

開(kāi)發(fā) 后端
JSP Standard Template Library (JSTL)是Sun為JSP編程所發(fā)布的一個(gè)新組件。JSTL允許你使用標(biāo)簽來(lái)編制你的JSP網(wǎng)頁(yè),而不是大多數(shù)JSP程序員習(xí)慣使用的scriptlet代碼。JSTL幾乎可以做到常規(guī)JSP scriptlet代碼所做的事情。

JSTL介紹中是允許JSP程序員使用標(biāo)簽進(jìn)行編程而不是Java代碼。為了說(shuō)明為什么這個(gè)是可取的,給出一個(gè)快速簡(jiǎn)單的小例子。我們就舉個(gè)非常簡(jiǎn)單的例子從1數(shù)到10。我們用常規(guī)的基于scriptlet JSP網(wǎng)頁(yè)和JSTL兩種方式來(lái)制作這個(gè)網(wǎng)頁(yè)。當(dāng)這個(gè)數(shù)到10的例子是使用scriptlet JSP編制的,JSP網(wǎng)頁(yè)會(huì)有如下顯示:

       < html>
< head>

< title>Count to 10 in JSP scriptlet< /title>

< /head>

< body>

< %

for(int i=1;i< =10;i++)

{%>

< %=i%>< br/>

< %

}

%>

< /body>

< /html>

正如你從以上例子中所看到的,使用scriptlet代碼產(chǎn)生的網(wǎng)頁(yè)源代碼包括了HTML標(biāo)簽和Java語(yǔ)句的混合。有很多原因說(shuō)明為什么這種混合式編程風(fēng)格不是***的。

混合scriptlet和基于標(biāo)簽的代碼不是***選擇的主要原因是可讀性。這種可讀性是針對(duì)人和計(jì)算機(jī)的。JSTL允許編程者看一個(gè)由整個(gè)HTML和HTML-like標(biāo)簽組成的程序。

JSP scriptlet代碼的可讀性不僅只適用于人類。Scriptlet和HTML代碼的混合也很難被計(jì)算機(jī)讀取。尤其是HTML制作工具例如某個(gè)Dreamweaver和Microsoft FrontPage。目前,大多數(shù)HTML制作工具將JSP scriptlet代碼作為不可編輯的塊區(qū)而分離開(kāi)。HTML制作工具通常不直接修改JSP scriptlet 代碼。

以下代碼顯示如何使用JSTL編寫(xiě)從1數(shù)到10的這個(gè)例子。正如你所看到的,這個(gè)代碼列表更連貫,因?yàn)橹皇褂昧藰?biāo)簽。是HTML和JSTL標(biāo)簽混合在一起產(chǎn)生的例子。

      < %@ taglib uri="< html>

< head>

< title>Count to 10 Example (using JSTL)< /title>

< /head>

< body>

< c:forEach var="i" begin="1" end="10" step="1">

< c:out value="${i}" />

< br />

< /c:forEach>

< /body>

< /html>

當(dāng)你檢查以前的代碼的時(shí)候,你可以看到JSP網(wǎng)頁(yè)整個(gè)是由標(biāo)簽組成的。上述代碼使用了HTML標(biāo)簽如< head> 和< br>。標(biāo)簽的使用不僅限于HTML標(biāo)簽。這個(gè)代碼也使用了JSTL標(biāo)簽例如< c:forEach> 和 < c:out>。在本文中向你介紹一些JSTL的基礎(chǔ)知識(shí)。

安裝JSTL

為了使用JSTL,你必須安裝JSP 1.2(或更高的版本)的容器。其中最常用的JSP容器是Apache Tomcat Web server。你可以從這里http://jakarta.apache.org/tomcat/獲取一個(gè)Tomcat的副本。單獨(dú)使用Tomcat可以讓你使用常規(guī)的JSP scriptlet代碼。為了使用JSTL, 你必須安裝JSTL到Tomcat。JSTL可以從和Tomcat一樣的來(lái)源獲得。JSTL主要的URL是http://java.sun.com/products/jsp/jstl/。為了使用JSTL,你必須解壓分配文件并把它們安裝到Tomacat中的正確位置。

為了同時(shí)使用Tomcat,正確安裝JSTL遵循以下三個(gè)步驟:

復(fù)制JSTL JAR文件到Tomcat的lib目錄。

如果你使用Windows,你的lib目錄的可能位置是C:\Program Files\Apache Tomcat 4.0\webapps\ROOT\WEB-INF\lib。JSTL發(fā)布時(shí)就有很多JAR文件包括其中。你需要復(fù)制每一個(gè)JAR文件到Tomcat JAR目錄中。

復(fù)制JSTL TLD文件到Tomcat的web-inf目錄web-inf目錄的位置是C:\Program Files\Apache Tomcat 4.0\webapps\ROOT\WEB-INF。如果你研究JSTL分配文件,你應(yīng)該注意到8個(gè)擴(kuò)展名是TLD的文件。這8個(gè)文件要復(fù)制到你的web-inf目錄中。

修改web.xml文件來(lái)包括TLD文件***,你必須修改你的web.xml文件,并為這8個(gè)你添加的標(biāo)簽庫(kù)添加入徑。這個(gè)由在主< web-app>指令中添加< taglib>指令。

      < taglib>
< taglib-uri>http://java.sun.com/jstl/fmt< /taglib-uri>

< taglib-location>/WEB-INF/fmt.tld< /taglib-location>

< /taglib>

< taglib>

< taglib-uri>http://java.sun.com/jstl/fmt-rt< /taglib-uri>

< taglib-location>/WEB-INF/fmt-rt.tld< /taglib-location>

< /taglib>

< taglib>

< taglib-uri>http://java.sun.com/jstl/core< /taglib-uri>

< taglib-location>/WEB-INF/c.tld< /taglib-location>

< /taglib>

< taglib>

< taglib-uri>http://java.sun.com/jstl/core-rt< /taglib-uri>

< taglib-location>/WEB-INF/c-rt.tld< /taglib-location>

< /taglib>

< taglib>

< taglib-uri>http://java.sun.com/jstl/sql< /taglib-uri>

< taglib-location>/WEB-INF/sql.tld< /taglib-location>

< /taglib>

< taglib>

< taglib-uri>http://java.sun.com/jstl/sql-rt< /taglib-uri>

< taglib-location>/WEB-INF/sql-rt.tld< /taglib-location>

< /taglib>

< taglib>

< taglib-uri>http://java.sun.com/jstl/x< /taglib-uri>

< taglib-location>/WEB-INF/x.tld< /taglib-location>

< /taglib>

< taglib>

< taglib-uri>http://java.sun.com/jstl/x-rt< /taglib-uri>

< taglib-location>/WEB-INF/x-rt.tld< /taglib-location>

< /taglib>

完成以上三個(gè)步驟,你已經(jīng)準(zhǔn)備好測(cè)試你的JSTL安裝。這個(gè)可以通過(guò)使用JSTL創(chuàng)建一個(gè)JSP網(wǎng)頁(yè)來(lái)完成。最簡(jiǎn)單的例子就是以上所示的"count to ten"例子。你應(yīng)該把你的JSP文件放到Webroot目錄中(C:\Program Files\Apache Tomcat 4.0\webapps\ROOT)。一旦Tomcat服務(wù)器啟動(dòng),你可以瀏覽http://127.0.0.1:8080/count.jsp來(lái)查看你的網(wǎng)頁(yè)。

如果你沒(méi)有正確安裝JSTL,可能也沒(méi)有錯(cuò)誤信息提示。如果JSTL不能翻譯你的標(biāo)簽,它們直接通過(guò)網(wǎng)頁(yè)瀏覽器。網(wǎng)頁(yè)瀏覽器將翻譯這些標(biāo)簽作為未知的HTML標(biāo)簽。大多數(shù)瀏覽器都會(huì)忽略未知的HTML標(biāo)簽。

JSTL標(biāo)簽庫(kù)

JSTL也常常作為一個(gè)單獨(dú)的標(biāo)簽庫(kù)。實(shí)際上,JSTL有4個(gè)標(biāo)簽庫(kù)。這些標(biāo)簽庫(kù)總結(jié)如下:

Core Tag Library—包括的標(biāo)簽是Web應(yīng)用程序必不可少的。core tag庫(kù)的例子包括循環(huán),算式評(píng)估和基本的輸入和輸出。

Formatting/Internationalization Tag Library—包括的標(biāo)簽是用于解析代碼的。其中一些標(biāo)簽是解析代碼的,例如日期,不同的基于當(dāng)前的區(qū)域。

Database Tag Library—包括的標(biāo)簽是用于訪問(wèn)SQL數(shù)據(jù)庫(kù)的。這些標(biāo)簽通常只用于創(chuàng)建雛形程序。這是因?yàn)榇蠖鄶?shù)程序不會(huì)從JSP網(wǎng)頁(yè)上直接處理數(shù)據(jù)庫(kù)訪問(wèn)。數(shù)據(jù)庫(kù)訪問(wèn)應(yīng)該置于EJBs中通過(guò)JSP網(wǎng)頁(yè)進(jìn)行訪問(wèn)。

XML Tag Library—包括的標(biāo)簽是可以用于訪問(wèn)XML元素。因?yàn)閄ML是用在很多的Web應(yīng)用程序中,XML處理是JSTL一個(gè)重要的功能。

在本文中,我們只需要大概的看幾個(gè)核心標(biāo)簽(core tags)。我們將舉一個(gè)簡(jiǎn)單的例子來(lái)展示用戶進(jìn)入一個(gè)表格時(shí)如何處理數(shù)據(jù)。在我們進(jìn)行這個(gè)程序之前,我們首先要看一看JSTL handles expressions。在JSTL中的表達(dá)式處理是通過(guò)使用EL表達(dá)式語(yǔ)言來(lái)完成的,像在JSP2.0中一樣。在下一節(jié)中,我們將檢查EL表達(dá)式語(yǔ)言。

EL表達(dá)式語(yǔ)言

JSP2.0其中一個(gè)主要的組件式叫做EL的新的表達(dá)式語(yǔ)言。EL廣泛應(yīng)用在JSTL中。但是,重點(diǎn)要記住的是EL是JSP的一個(gè)特征而不是JSTL的。與JSP2.0一起使用的JSP scriptlet代碼包括EL表達(dá)式。以下的示范代碼行是在JSP scriptlet代碼中使用了EL。

       < p> 
Your total, including shipping is ${total+shipping}

< /p>

正如你從以上代碼中所看到的,添加了"total" 和"shipping"值并作為HTML顯示而產(chǎn)生的。這些表達(dá)式也可以再JSTL標(biāo)簽中使用。JSTL1.0其中的一個(gè)重要需求就是JSTL要和JSP1.2一起使用。因?yàn)镴SP1.2不支持EL, 所以又必要提供一些而外的JSTL標(biāo)簽以便使用EL。例如,如果你想要使用JSTL來(lái)顯示以上的表達(dá)式,你可以使用以下的代碼:

       < p> 
Your total, including shipping is < c:out var="${total+shipping"/>

< /p>

JSTL的一個(gè)需求就是不需要JSP2.0來(lái)運(yùn)行。通過(guò)提供一個(gè)可以顯示EL表達(dá)式的標(biāo)簽,這個(gè)需求才能被滿足。

JSTL示例

現(xiàn)在我們就來(lái)研究一個(gè)使用JSTL的簡(jiǎn)單例子。在這個(gè)例子中,我們將研究許多Web應(yīng)用程序都能做到的一個(gè)常見(jiàn)的程序。我們將看到如何POST一個(gè)表格并從其中運(yùn)行結(jié)果。能夠這樣做的一個(gè)簡(jiǎn)單的程序,見(jiàn)如下顯示:

      < %@ taglib uri="< html>

< head>

< title>If with Body< /title>

< /head>

< body>

< c:if test="${pageContext.request.method=='POST'}">

< c:if test="${param.guess=='Java'}">You guessed it!

< br />

< br />

< br />

< /c:if>

< c:if test="${param.guess!='Java'}">You are wrong

< br />

< br />

< br />

< /c:if>

< /c:if>

< form method="post">Guess what computer language

I am thinking of?

< input type="text" name="guess" />

< input type="submit" value="Try!" />

< br />

< /form>

< /body>

< /html>

這個(gè)簡(jiǎn)單的Web網(wǎng)頁(yè)將顯示一個(gè)表格并詢問(wèn)用戶猜一猜哪種計(jì)算機(jī)語(yǔ)言是程序可以考慮的。當(dāng)然,計(jì)算機(jī)會(huì)考慮"Java."。本頁(yè)首先要檢查看是否一個(gè)POST被完成了。這使得表格和處理表格的代碼放在一個(gè)單一的頁(yè)面中。這個(gè)是通過(guò)以下JSTL if 語(yǔ)句完成的。

< c:if test="${pageContext.request.method=='POST'}">

這里你看到< c:if>標(biāo)簽使用了一個(gè)EL表達(dá)式來(lái)評(píng)估要求的方式是否是一個(gè)POST。如果數(shù)據(jù)被粘貼到網(wǎng)頁(yè),用戶輸入他們的猜測(cè)的值被儲(chǔ)存在一個(gè)名字叫"guess"的參數(shù)中。這是因?yàn)?guess"被指定為表格輸入條目的名字了。我們現(xiàn)在必須檢查看一看那這個(gè)參數(shù)是否等于"Java"。這個(gè)通過(guò)以下的< c:if>標(biāo)簽來(lái)完成。

< c:if test="${param.guess=='Java'}"> 
You guessed it!

< /c:if>

如你所見(jiàn),如果語(yǔ)句評(píng)估正確,< c:if>標(biāo)簽的主體就被執(zhí)行。在本文中,我們開(kāi)始研究有關(guān)怎樣安裝JSTL和它是如何工作的基礎(chǔ)知識(shí)。

JSTL的核心標(biāo)簽也包括了循環(huán),反復(fù)和變量處理的標(biāo)簽。通過(guò)使用這些標(biāo)簽,你可以重復(fù)這些集合,訪問(wèn)用戶對(duì)話數(shù)據(jù)和執(zhí)行所有Web應(yīng)用程序執(zhí)行的其他的核心任務(wù)。除了core tag library,XML, database和formatting tag 庫(kù)也提供了更先進(jìn)的用途。

總結(jié)

本文向你展示了在JSTL和JSP scriptlet編程之間的一些不同之處。如你所看到的,JSTL承認(rèn)一個(gè)更一致的編程環(huán)境,通過(guò)承認(rèn)HTML和程序代碼一起作為標(biāo)簽來(lái)表達(dá)。JSTL和標(biāo)簽庫(kù)代表了網(wǎng)頁(yè)編程的一個(gè)新的方法。

JSTL沒(méi)有提供一個(gè)程序員需要?jiǎng)?chuàng)建一個(gè)完整功能網(wǎng)頁(yè)應(yīng)用程序的所有東西。此外,一些可以在JSTL中編程的程序往往***是沒(méi)有列入JSTL中。關(guān)于這個(gè)的一個(gè)***的例子就是數(shù)據(jù)庫(kù)JSTL標(biāo)簽。除了每個(gè)小的Web應(yīng)用程序外,它通常被認(rèn)為是不好的編程習(xí)慣就是嵌入實(shí)際的數(shù)據(jù)庫(kù)命令到一個(gè)JSP網(wǎng)頁(yè)中。這樣的程序代碼的恰當(dāng)位置是在你的Web應(yīng)用程序常使用的Java beans和EJBs中。對(duì)于這種慣例,你可以考慮創(chuàng)建自己的標(biāo)簽庫(kù)。這樣,你的JSP網(wǎng)頁(yè)可以使用JSTL來(lái)執(zhí)行基本的并非只是你的業(yè)務(wù)的編程程序。你應(yīng)該完成你自己的標(biāo)簽庫(kù)來(lái)執(zhí)行組件,這些只對(duì)你的業(yè)務(wù)是***的,也是在你的Web應(yīng)用程序中用到的。

JSTL讓你創(chuàng)建一個(gè)非常一致的編程JSP技術(shù)為基礎(chǔ)的應(yīng)用程序。這個(gè)不是通過(guò)JSTL來(lái)完成,而是通過(guò)JSTL,你自己的自定義標(biāo)簽庫(kù)和一個(gè)基本的數(shù)據(jù)庫(kù)組合來(lái)完成的。了解每一個(gè)這些組件可以讓你部署一個(gè)更有效的Web應(yīng)用程序。

您正在閱讀的是《JSTL介紹—JSP編程新組件 允許用標(biāo)簽編程

【編輯推薦】

  1. JSP***實(shí)踐 使用JSTL來(lái)更新JSP頁(yè)面
  2. JSTL和EL開(kāi)發(fā)JSP頁(yè)面的優(yōu)勢(shì)及實(shí)現(xiàn)
  3. JSTL實(shí)現(xiàn)JSP應(yīng)用程序快速開(kāi)發(fā)
責(zé)任編輯:彭凡 來(lái)源: CSDN
相關(guān)推薦

2009-07-06 15:32:49

JSP應(yīng)用標(biāo)簽功能

2009-08-03 09:15:39

JSP標(biāo)準(zhǔn)標(biāo)記庫(kù)JSTL

2009-07-02 08:50:01

JSP標(biāo)簽庫(kù)

2009-07-07 14:33:44

JSP入門(mén)

2011-06-07 11:14:51

JAVAJSP

2009-09-04 15:26:20

Windows 7編程

2009-07-07 17:37:32

JSP標(biāo)簽庫(kù)

2009-10-27 09:17:00

Windows 7編程接口

2009-07-03 11:27:11

JSP編程思想

2010-01-04 11:02:06

ADO.NET組件

2009-07-03 14:31:51

2009-03-16 15:07:20

JSP分頁(yè)window.openJSP表單

2010-06-09 17:48:15

Linux 編程工具

2009-06-30 16:51:56

2010-06-03 13:01:25

Linux 編程工具

2009-06-06 18:54:02

JSP編程進(jìn)度條

2009-07-02 10:51:21

腳本編程JSP開(kāi)發(fā)

2009-07-03 13:56:21

JSP編程技巧

2009-07-07 17:32:31

HTTP Servle

2011-07-12 17:42:46

PHP
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)