新聞中心
引言

創(chuàng)新互聯(lián)是工信部頒發(fā)資質(zhì)IDC服務(wù)器商,為用戶(hù)提供優(yōu)質(zhì)的服務(wù)器托管機(jī)柜服務(wù)
WEB應(yīng)用程序設(shè)計(jì)(JSP)是計(jì)算機(jī)專(zhuān)業(yè)學(xué)生的專(zhuān)業(yè)必修課程,但是有些Java語(yǔ)言基礎(chǔ)薄弱的同學(xué)會(huì)感覺(jué)學(xué)習(xí)困難,很多同學(xué)在畢業(yè) 后參加信息產(chǎn)業(yè)部等部門(mén)組織的相應(yīng)專(zhuān)業(yè)職業(yè)技能考證考試時(shí)感到束手無(wú)策,因?yàn)镴SP中大量動(dòng)態(tài)內(nèi)容的邏輯需要通過(guò)Java代碼段來(lái)實(shí)現(xiàn)。JSTL(JSP Standard Tag Library,JSP標(biāo)準(zhǔn)標(biāo)記庫(kù))規(guī)范的發(fā)布和JSP 2.0新特性EL(Expression Language,表達(dá)式語(yǔ)言)的引入,為不習(xí)慣Java語(yǔ)言或者不熟悉Java語(yǔ)言的WEB設(shè)計(jì)開(kāi)發(fā)人員提供了一個(gè)JSP開(kāi)發(fā)的新途徑,它簡(jiǎn)化了程序, 提高了程序的可讀性和可維護(hù)性。
優(yōu)勢(shì)與實(shí)現(xiàn)
JSTL規(guī)范是由JCP(Java Community process program)開(kāi)放性組織發(fā)展完善的。JSTL1.0始發(fā)布于2002年6月,目前***版本是JSTL1.2。JSTL實(shí)際上可以看作是一組基于XML 語(yǔ)法的自定義標(biāo)記形成的標(biāo)記庫(kù)。JSTL提供五個(gè)標(biāo)準(zhǔn)標(biāo)記庫(kù)(core核心、internationalization/format(國(guó)際標(biāo)準(zhǔn)化/格 式)、XML、SQL和function函數(shù))并支持EL。EL是2003年發(fā)布的JSP 2.0引入的最主要的新特性,它用簡(jiǎn)單語(yǔ)法定義了表達(dá)式語(yǔ)言。在JSTL標(biāo)記中,可以靈活使用EL表達(dá)式,提供了一個(gè)用EL表示的強(qiáng)大的屬性集,使得 JSP動(dòng)態(tài)表示層技術(shù)開(kāi)發(fā)可以完全脫離Java腳本代碼。
目前Tomcat 6 Web服務(wù)器中不自動(dòng)包含對(duì)JSTL的支持,所以在使用JSTL之前須在SUN的JSTL頁(yè)面(http://java.sun.com /products/jsp/jstl)下載JSTL規(guī)范(一些.JAR文件)。JSTL有以下三個(gè)安裝配置步驟:
①將JSTL實(shí)現(xiàn)庫(kù)文件 jstl.jar和standard.jar以及標(biāo)記庫(kù)描述文件夾tld拷貝到Tomcat Webapps的WEB-INF下。
②修改web.xml(Web應(yīng)用配置文件),在其中定義五類(lèi)標(biāo)準(zhǔn)標(biāo)記庫(kù)所對(duì)應(yīng)的.tld(標(biāo)記庫(kù)描述文件)的 URI。例如在使用核心標(biāo)記庫(kù)之前,須編輯web.xml并在其中添加如下代碼:
<taglib-uri﹥http://java.sun.com/jsp/jstl/core <taglib-location﹥/WEB-INF/tld/c.tld |
③在JSP頁(yè)面開(kāi)頭用taglib標(biāo)記庫(kù)指令指定要使用的標(biāo)記庫(kù)。比如,要使用JSTL core標(biāo)記庫(kù),EL 版本的taglib偽指令為:
<%taglib uri=http://java.sun.com/jsp/jstl/core"prefix="c"%> |
其中:c是核心標(biāo)記庫(kù)的前綴名(可由用戶(hù)指定或用系統(tǒng)約定前綴c),它在使用標(biāo)記庫(kù)標(biāo)記時(shí)用到。例如:out是核心庫(kù)4個(gè)通用標(biāo)記之一,
以獲取“用戶(hù)注冊(cè)登錄”表單信息的處理程序?yàn)槔?/p>
使用EL param獲取用戶(hù)提交的數(shù)據(jù),可以簡(jiǎn)單表示為:
姓名:${param.name}性別:${param.sex}E-mail:${param.email} ... ...
其中,name、sex、email等分別是提交表單的控件名。
***,以JSP開(kāi)發(fā)《班級(jí)論壇》實(shí)例項(xiàng)目為例:
DbQuery.jsp是一個(gè)查詢(xún)數(shù)據(jù)庫(kù)的頁(yè)面。我們?cè)贛ySQL數(shù)據(jù)庫(kù)classbbs中創(chuàng)建了擁有全部權(quán)限的用戶(hù) cq(password:admin)及數(shù)據(jù)庫(kù)表stud。運(yùn)行http://localhost:8080/proj/BBS/ DbQuery.jsp后將可以顯示stud表中的全部記錄的相關(guān)內(nèi)容。(在開(kāi)源項(xiàng)目eclipse下編輯編譯運(yùn)行通過(guò))。
<!-- DbQuery.jsp -->
<%@ page contentType="text/html;charset=GBK" %>
<!—1.指定要使用的SQL標(biāo)記庫(kù)和核心標(biāo)記庫(kù) -->
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!—2.設(shè)置數(shù)據(jù)源并保存在datas中 -->
<sql:setDataSource url="jdbc:mysql://localhost:4097/classbbs"
driver="com.mysql.jdbc.Driver" user="cq" password="admin" var="datas"/>
<!—3.執(zhí)行一個(gè)數(shù)據(jù)庫(kù)查詢(xún)并將結(jié)果保存在res中 -->
<sql:query sql="select *from stud" var="res" dataSource="${datas}"/>
<!—4.顯示查詢(xún)結(jié)果 -->
<html><body><table border="1">
<tr><th>姓名</th><th>留言</th><th>提交時(shí)間</th></tr>
<c:forEach var="row" items="${res.rows}">
<tr><td><c:out value="${row.name}"/></td>
<td><c:out value="${row.say}"/></td>
<td><c:out value="${row.submit}"/></td></tr>
</c:forEach></table></body></html> |
結(jié)語(yǔ)
JSTL的core標(biāo)記庫(kù)中提供了所有JSP頁(yè)面常用功能的集合;SQL標(biāo)記庫(kù)提供了對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)支持;此外 Internationalization/format標(biāo)記庫(kù)提供了國(guó)際化(I18N)標(biāo)記集和數(shù)字、日期等的相關(guān)標(biāo)記集用以處理數(shù)據(jù)顯示的國(guó)際化和格 式化;XML標(biāo)記庫(kù)提供了對(duì)XML語(yǔ)言的支持;function標(biāo)記庫(kù)提供了對(duì)函數(shù)的支持等等。JSTL和EL以巨大的優(yōu)勢(shì)簡(jiǎn)化了JSP的WEB開(kāi)發(fā)。限 于篇幅,我們只對(duì)其中的core和SQL標(biāo)記庫(kù)給出了應(yīng)用實(shí)例,希望對(duì)喜歡用JSP開(kāi)發(fā)web應(yīng)用而又畏懼Java語(yǔ)言的同學(xué)會(huì)有所幫助。
名稱(chēng)欄目:JSTL和EL開(kāi)發(fā)JSP頁(yè)面的優(yōu)勢(shì)及實(shí)現(xiàn)
網(wǎng)頁(yè)路徑:http://www.5511xx.com/article/ccoohip.html


咨詢(xún)
建站咨詢(xún)
