![JSP標(biāo)準(zhǔn)標(biāo)簽庫(kù)介紹_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-4/22/6d77142d-b2e6-43ed-9237-b867423e7a72/6d77142d-b2e6-43ed-9237-b867423e7a721.gif)
![JSP標(biāo)準(zhǔn)標(biāo)簽庫(kù)介紹_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-4/22/6d77142d-b2e6-43ed-9237-b867423e7a72/6d77142d-b2e6-43ed-9237-b867423e7a722.gif)
![JSP標(biāo)準(zhǔn)標(biāo)簽庫(kù)介紹_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-4/22/6d77142d-b2e6-43ed-9237-b867423e7a72/6d77142d-b2e6-43ed-9237-b867423e7a723.gif)
![JSP標(biāo)準(zhǔn)標(biāo)簽庫(kù)介紹_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-4/22/6d77142d-b2e6-43ed-9237-b867423e7a72/6d77142d-b2e6-43ed-9237-b867423e7a724.gif)
![JSP標(biāo)準(zhǔn)標(biāo)簽庫(kù)介紹_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-4/22/6d77142d-b2e6-43ed-9237-b867423e7a72/6d77142d-b2e6-43ed-9237-b867423e7a725.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、.JSP標(biāo)準(zhǔn)標(biāo)簽庫(kù)介紹簡(jiǎn)介 JSP標(biāo)準(zhǔn)模板庫(kù)(JSTL)是SUN公司發(fā)布的一個(gè)針對(duì)JSP開發(fā)的新組件。JSTL允許你使用標(biāo)簽(tags)來進(jìn)行JSP頁面開發(fā),而不是使用多數(shù)JSP程序員已經(jīng)習(xí)慣了的scriptlet代碼方式開發(fā)。JSTL幾乎能夠做到傳統(tǒng)JSP scriptlet代碼能做的任何事情。你可能會(huì)疑惑,為什么我們需要另一種這樣的HTML生成語言呢? STL允許JSP程序員使用tags而不是JAVA代碼來編程。為了展示為什么這個(gè)是更優(yōu)越的,下面將給出示例。我們會(huì)檢查一個(gè)非常簡(jiǎn)單的從1數(shù)到10的JSP頁面。我們將通過兩種方法來檢查,一種是基于JSP的scriptlet,一種是JSTL。當(dāng)這
2、個(gè)計(jì)數(shù)器頁面的例子是用JSP scriptlet來編寫時(shí),JSP頁面如下所示: <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)生的頁面源代碼會(huì)包含混合的HTML標(biāo)簽和
3、JAVA語句。這種混合型的編程方式不是最佳的方式,其主要原因有以下幾點(diǎn)。 主要的原因是它的可讀性。這個(gè)可讀性主要依賴于人類和計(jì)算機(jī)。JSTL可以允許程序員查看一個(gè)只包含完整HTML和類似HTML的標(biāo)簽的頁面。 SP scriptlet代碼的可讀性不適合人類。這種混合的scriptlet和HTML代碼對(duì)于計(jì)算機(jī)來說也很難讀。尤其是針對(duì)那些HTML官方工具如Dreamweaver和Microsoft FrontPage,所表現(xiàn)出來的不直觀性更突出。目前,大多數(shù)HTML官方工具會(huì)以不可編輯塊(non-editable blocks)的形式來隔離JSP scriptlet代碼。這種HTML官方工具通常
4、是不能直接修改JSP scriptlet代碼的。 下面這段代碼展示這個(gè)計(jì)數(shù)器范例如何使用JSTL方式來編寫。正如你所看到的,這個(gè)代碼列表有不變性,僅僅一個(gè)標(biāo)簽被使用。HTML和JSTL標(biāo)簽混合起來產(chǎn)生了這個(gè)程序。 <% taglib uri=" prefix="c" %> <html> <head> <title>Count to 10 Example (using JSTL)</title> </head> <body> <c:forEach var="i&quo
5、t; begin="1" end="10" step="1"> <c:out value="$i" /> <br /> </c:forEach> </body> </html> 當(dāng)你檢查上面這個(gè)例子的代碼時(shí),你會(huì)看到,JSP頁面只包含標(biāo)簽。上面的代碼使用諸如<head>和<br>這樣的HTML標(biāo)簽。這種標(biāo)簽用法不限制于HTML標(biāo)簽。這段代碼也可以使用諸如<c:forEach>和<c:out>這樣的JST
6、L標(biāo)簽。在本文中,將會(huì)介紹一些JSTL的基礎(chǔ)。 安裝JSTL 要使用JSTL,你必須安裝有一個(gè)JSP1.2(或者更高版本)的容器。最普通的JSP容器是Apache Tomcat。你能夠從/tomcat/這里下載到。獨(dú)立的Tomcat允許你使用常規(guī)的JSP scriptlet代碼。要使用JSTL,你必須在Tomcat中安裝JSTL。JSTL的主要URL是 要在Tomcat中安裝JSTL,有下面三個(gè)步驟: 拷貝JSTL JAR文件到Tomcat的lib目錄中. 如果你使用的是Windows, 那么lib目錄最可能的位置是C:Program Files
7、Apache Tomcat 4.0webappsROOTWEB-INFlib。你應(yīng)該拷貝這些JAR包到你的Tomcat JAR目錄。 拷貝JSTL TLD文件到Tomcat的web-inf目錄中 你檢查JSTL發(fā)布文件時(shí),你應(yīng)該會(huì)注意到有8個(gè)文件是以TLD擴(kuò)展名結(jié)尾的。所有這8個(gè)文件都應(yīng)該復(fù)制到你的web-inf目錄中。 修改web.xml文件包含這些TLD文件。 最后,你必須修改你的web.xml,添加8個(gè)標(biāo)簽庫(kù)的表項(xiàng)(entry)。需要添加的表項(xiàng)如下所示: <taglib> <taglib-uri> <taglib-location>/WEB-INF/f
8、mt.tld</taglib-location> </taglib> <taglib> <taglib-uri> <taglib-location>/WEB-INF/fmt-rt.tld</taglib-location> </taglib> <taglib> <taglib-uri> <taglib-location>/WEB-INF/c.tld</taglib-location> </taglib> <taglib> <tagli
9、b-uri> <taglib-location>/WEB-INF/c-rt.tld</taglib-location> </taglib> <taglib> <taglib-uri> <taglib-location>/WEB-INF/sql.tld</taglib-location> </taglib> <taglib> <taglib-uri> <taglib-location>/WEB-INF/sql-rt.tld</taglib-locatio
10、n> </taglib> <taglib> <taglib-uri> <taglib-location>/WEB-INF/x.tld</taglib-location> </taglib> <taglib> <taglib-uri> <taglib-location>/WEB-INF/x-rt.tld</taglib-location> </taglib> 完成上面這三步后,你現(xiàn)在可以準(zhǔn)備測(cè)試你的JSTL安裝了??梢酝ㄟ^創(chuàng)建一個(gè)包含JSTL的JSP頁面來驗(yàn)證
11、。一個(gè)最簡(jiǎn)單的范例程序就是上面的那個(gè)計(jì)數(shù)器程序。你應(yīng)該將它放置在你的Webroot目錄中(C:Program FilesApache Tomcat 5.0webappsROOT)。一旦Tomcat啟動(dòng)后,你應(yīng)該能夠通過瀏覽:8080/count.jsp來查看這個(gè)頁面。 如果你沒有正確安裝JSTL,那么可能不會(huì)出現(xiàn)錯(cuò)誤信息。如果JSTL不能解釋你的標(biāo)簽含義,那么它在Web瀏覽器上會(huì)直接跳過。然后Web瀏覽器將解釋這些未知的HTML標(biāo)簽。多數(shù)瀏覽器僅僅只是忽略這些未知的HTML標(biāo)簽。 JSTL標(biāo)簽庫(kù) JSTL通常被認(rèn)為是一種單標(biāo)簽庫(kù)。但JSTL實(shí)際上有4個(gè)標(biāo)簽庫(kù)。這些
12、標(biāo)簽庫(kù)被概括為如下: 核心標(biāo)簽庫(kù)包含一些Web應(yīng)用的必要的標(biāo)簽。核心標(biāo)簽庫(kù)的實(shí)例包括循環(huán),表達(dá)式賦值和基本輸入輸出。. 格式化/國(guó)際化標(biāo)簽庫(kù)包括被用來解析數(shù)據(jù)的標(biāo)簽庫(kù)。這種標(biāo)簽會(huì)解析數(shù)據(jù),比如日期,不同的場(chǎng)所區(qū)域等。 數(shù)據(jù)庫(kù)標(biāo)簽庫(kù)包含被用來訪問SQL數(shù)據(jù)庫(kù)的標(biāo)簽。這些標(biāo)簽通常僅僅只創(chuàng)建原形(prototype)程序。這個(gè)是因?yàn)榇蠖鄶?shù)程序不會(huì)直接從JSP頁面中來處理數(shù)據(jù)庫(kù)訪問。數(shù)據(jù)庫(kù)訪問應(yīng)該被嵌入到能夠被JSP頁面所訪問的EJB中。 XML標(biāo)簽庫(kù)包含被用來訪問XML元素的標(biāo)簽。因?yàn)閄ML廣泛使用于Web開發(fā),XML的處理是JSTL的一個(gè)重要的特征。 在本文中,我們將僅僅只對(duì)核心標(biāo)簽做一個(gè)簡(jiǎn)單介紹
13、。我們將考察一個(gè)簡(jiǎn)單的范例,來說明如何處理用戶在表單中輸入的數(shù)據(jù)。在我們開始檢查程序之前,我們必須先看看JSTL是如何處理表達(dá)式的,JSTL的表達(dá)式處理是通過使用EL表達(dá)式語言來完成的,僅僅只能在JSP2.0被使用。下一節(jié),我們會(huì)考察EL表達(dá)式語言。 EL表達(dá)式語言 JSP2.0的一個(gè)主要的組件就是這個(gè)新的叫做EL的表達(dá)式語言。EL被廣泛用在JSTL中。然而,重要的是記住,EL是JSP的功能而不是JSTL的。被用在JSP2.0中JSP scriptlet代碼能夠包含EL表達(dá)式。下面這行代碼演示了JSP scriptlet代碼中的EL: <p> Your total, includi
14、ng shipping is $total+shipping </p> 正如你看到的,total和shipping相加后會(huì)產(chǎn)生HTML并且在瀏覽器中顯示它們的值。這些表達(dá)式也可以在JSTL標(biāo)簽中使用。JSTL1.0的一個(gè)重要問題是,JSTL不能用在JSP1.2的版本上。因?yàn)镴SP1.2不支持EL,所以有必要提供一些額外的JSTL標(biāo)簽來幫助EL的使用。例如,如果你想使用JSTL來顯示上面的表達(dá)式,你可以使用下面的代碼。 <p> Your total, including shipping is <c:out var="$total+shipping&quo
15、t;/> </p> 值得注意的是,JSTL不需要JSP2.0來運(yùn)行。通過提供一個(gè)能夠顯示EL表達(dá)式的標(biāo)簽,就可以達(dá)到這樣的需求。 JSTL范例 我們將考察一個(gè)簡(jiǎn)單的使用JSTL的范例。在這個(gè)例子里,我們將考察Web應(yīng)用中的一個(gè)常見過程。我們會(huì)看到如何提交(POST)一個(gè)表單,并處理POST的結(jié)果。程序代碼如下: <% taglib uri=" prefix="c" %> <html> <head> <title>If with Body</title> </head> <
16、;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
17、 /> <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> </
18、html> 這個(gè)簡(jiǎn)單的Web頁面顯示一個(gè)表單,要求用戶猜測(cè)程序所想的計(jì)算機(jī)語言。當(dāng)然,計(jì)算機(jī)想的是“Java”。這個(gè)頁面通過檢查“是否已提交”來開始。這使得表單和處理表單的代碼可以放在同一個(gè)頁面中。是通過下面的JSTL if語句實(shí)現(xiàn)的。 <c:if test="$pageContext.request.method='POST'"> 現(xiàn)在你看到了,<c:if>標(biāo)簽使用EL表達(dá)式來決定是否請(qǐng)求的方式是POST的。如果數(shù)據(jù)被post到頁面,那么用戶輸入的他們的猜想值就會(huì)存儲(chǔ)在名為“guest”的參數(shù)中。這是因?yàn)椤癵uest”是表單輸入項(xiàng)的名字。我們現(xiàn)在必須檢查是否這個(gè)參數(shù)等于“Java”。這個(gè)是通過下面的<c:if>標(biāo)簽來完成: <c:if test="$
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年官方租賃用地協(xié)議書倡議
- 2025版市場(chǎng)營(yíng)銷策劃行業(yè)保密協(xié)議實(shí)施準(zhǔn)則
- 2025年企業(yè)股權(quán)重組策劃協(xié)議書
- 2025年個(gè)人代理合同指南
- 2025年出租車公司運(yùn)營(yíng)管理合同樣本
- 2025年企業(yè)目標(biāo)與員工任務(wù)匹配協(xié)議
- 2025年企業(yè)供能服務(wù)合同模板
- 2025年供應(yīng)鏈長(zhǎng)期合作協(xié)議
- 2025年商業(yè)街區(qū)店鋪經(jīng)營(yíng)權(quán)交易協(xié)議
- 2025年新能源汽車產(chǎn)業(yè)策劃合作投資規(guī)劃協(xié)議
- 集成墻板購(gòu)銷合同范本(2024版)
- 2023九年級(jí)歷史下冊(cè) 第三單元 第一次世界大戰(zhàn)和戰(zhàn)后初期的世界第10課《凡爾賽條約》和《九國(guó)公約》教案 新人教版
- 偏癱患者肩關(guān)節(jié)脫位的綜合康復(fù)治療
- 持續(xù)質(zhì)量改進(jìn)項(xiàng)目匯報(bào)
- 2024版買賣二手車合同范本
- 阻燃更要消煙一文讓你掌握無煙阻燃改性技術(shù)的方方面面
- 第15課 列強(qiáng)入侵與中國(guó)人民的反抗斗爭(zhēng) 教學(xué)設(shè)計(jì)-2023-2024學(xué)年中職高一上學(xué)期高教版(2023)中國(guó)歷史全一冊(cè)
- 2023年人教版七年級(jí)歷史下冊(cè)《全冊(cè)課件》
- 新大象版科學(xué)三年級(jí)下冊(cè)全冊(cè)知識(shí)點(diǎn) (復(fù)習(xí)用)
- 2024年黑龍江省專升本考試生理學(xué)護(hù)理學(xué)專業(yè)測(cè)試題含解析
- 建筑設(shè)計(jì)工程設(shè)計(jì)方案
評(píng)論
0/150
提交評(píng)論