版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、課程名稱(chēng):Java Web應(yīng)用開(kāi)發(fā) 北大青鳥(niǎo)Aptech·學(xué)術(shù)部Java Web應(yīng)用開(kāi)發(fā)教案第十一章 JSP標(biāo)準(zhǔn)標(biāo)簽庫(kù)2011-7-171.回顧:10分鐘22.課程知識(shí)點(diǎn)講解:22.1.JSTL 簡(jiǎn)介5分鐘32.2.核心標(biāo)簽庫(kù)20分鐘32.3.國(guó)際化與格式化標(biāo)簽庫(kù)30分鐘52.4.SQL 標(biāo)簽庫(kù)30分鐘73.本章總結(jié) 10分鐘84.考核點(diǎn)95.擴(kuò)展部分:96.學(xué)員問(wèn)題匯總:97.作業(yè):91 回顧:10分鐘2 課程知識(shí)點(diǎn)講解11 JSTL 簡(jiǎn)介5分鐘核心標(biāo)簽庫(kù)、國(guó)際化(I18N) 與格式化標(biāo)簽庫(kù)、XML 標(biāo)簽庫(kù)以及SQL 標(biāo)簽庫(kù);JSTL 標(biāo)簽庫(kù)的兩種版本;使用JSTL 的taglib
2、 指令;12 核心標(biāo)簽庫(kù)20分鐘<c:set>、<c:remove>;<c:out>;<c:if>;<c:choose>;<c:forEach>;<c:forTokens>;13 國(guó)際化與格式化標(biāo)簽庫(kù)30分鐘<fmt:setLocale>;<fmt:bundle>;<fmt:setBundle>;<fmt:message>;理解資源文件;14 SQL 標(biāo)簽庫(kù)30分鐘<sql:setDataSource>;<sql:query>;<sq
3、l:update>;<sql:transaction>;<sql:param>;3 本章總結(jié)10分鐘4 學(xué)員問(wèn)題匯總5 作業(yè)授課教師:謝華軍課時(shí):2小時(shí)l 本章主要目的1、理解核心標(biāo)簽庫(kù)2、理解I18N 和格式標(biāo)簽3、理解SQL 標(biāo)簽庫(kù)l 本章重點(diǎn)理解JSTL 的概念和如何使用標(biāo)準(zhǔn)標(biāo)簽庫(kù)編寫(xiě)JSP 頁(yè)面l 本章難點(diǎn)SQL 標(biāo)簽庫(kù)1. 回顧:10分鐘提問(wèn):定義簡(jiǎn)單標(biāo)簽的處理程序文件需要幾個(gè)步驟?自定義標(biāo)簽是用戶(hù)定義的 JSP 語(yǔ)言元素標(biāo)簽處理程序是一個(gè)對(duì)象,Web 容器調(diào)用此對(duì)象,以在執(zhí)行 JSP 頁(yè)面的過(guò)程中解釋自定義標(biāo)簽簡(jiǎn)單標(biāo)簽的處理程序必須實(shí)現(xiàn) Tag 接口的
4、 doStartTag() 和 doEndTag() 方法標(biāo)簽庫(kù)描述符 (TLD, Tag Library Descriptor) 包含庫(kù)以及該庫(kù)中所包含的每個(gè)標(biāo)簽的信息標(biāo)簽文件,用更簡(jiǎn)單的方式來(lái)自定義標(biāo)簽。2. 課程知識(shí)點(diǎn)講解:2.1. JSTL 簡(jiǎn)介5分鐘從上節(jié)自定義標(biāo)簽作引入:我們無(wú)論做什么系統(tǒng),在jsp編寫(xiě)中或許會(huì)遇到相同或者相似的操作,例如對(duì)變量的輸出以及賦值操作,一些條件處理以及對(duì)一個(gè)集合的循環(huán)操作,還有連接查詢(xún)數(shù)據(jù)庫(kù)等通用的操作,這些如果用標(biāo)簽實(shí)現(xiàn)是不是要每做一個(gè)項(xiàng)目都要作一套標(biāo)簽么?如果有現(xiàn)成的這種標(biāo)準(zhǔn)庫(kù)那不就方便多了!答案是肯定的!下面要講述的就是這種標(biāo)簽庫(kù)。JSTL 是什么
5、:Java Server Pages 標(biāo)準(zhǔn)標(biāo)簽庫(kù) (JSTL) 包含的各種標(biāo)簽可用于 JSP 頁(yè)面中。 JSP 標(biāo)準(zhǔn)標(biāo)簽庫(kù) (JSTL) - 提供兩組標(biāo)簽,一組使用 EL(Expression Language,表達(dá)式語(yǔ)言),而另一組支持使用請(qǐng)求時(shí)表達(dá)式。為什么要用JSTL:可以編寫(xiě)沒(méi)有java代碼的jsp頁(yè)面。使JSP頁(yè)面很容易被WEB設(shè)計(jì)人員理解,表達(dá)更清晰。減少程序出錯(cuò),是程序容易維護(hù)。 JSP 標(biāo)準(zhǔn)標(biāo)簽庫(kù)包括:核心標(biāo)簽庫(kù),I18N與格式化標(biāo)簽庫(kù),SQL標(biāo)簽庫(kù),XML標(biāo)簽庫(kù)。核心標(biāo)簽庫(kù):包含各種常用的標(biāo)簽,如通用,迭代,條件等標(biāo)簽。I18N與格式化標(biāo)簽庫(kù):包含國(guó)際化標(biāo)簽和格式化標(biāo)簽。SQ
6、L標(biāo)簽庫(kù):包含數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)和更新的標(biāo)簽。XML標(biāo)簽庫(kù):包含對(duì)XML操作的標(biāo)簽。2.2. 核心標(biāo)簽庫(kù)20分鐘要使用核心標(biāo)簽庫(kù),必須先導(dǎo)入核心標(biāo)簽庫(kù)的URI,語(yǔ)法如下:<% taglib uri=” prefix=”c” %>1. 通用標(biāo)簽通用標(biāo)簽庫(kù)用于操作 JSP 頁(yè)面內(nèi)的作用域變量。<c:set>:設(shè)置jsp中的變量,如果不存在就創(chuàng)建它。語(yǔ)法:<c:set var=”變量名” value=” 變量值” scope=”作用域范圍”>作用域范圍,是page,request,session,application中的一個(gè),默認(rèn)是page。<c:remove&g
7、t;:用于刪除創(chuàng)建的變量。語(yǔ)法:<c:set var=”變量名” scope=”作用域范圍”>作用域范圍,是page,request,session,application中的一個(gè),默認(rèn)是page。<c:out>:輸出表達(dá)式值到頁(yè)面。語(yǔ)法:<c:out value=”要輸出的值” escapeXml=”truefalse” default=”默認(rèn)值”>escapeXml,確定是否將結(jié)果中的字符(如<,>,&,”,)轉(zhuǎn)化乘字符實(shí)體代碼,默認(rèn)為true。教材192上有個(gè)轉(zhuǎn)換表。示例: <% page contentType="
8、text/html; charset=GBK" %><% taglib uri=" prefix="c" %><html><head><title>dtjsp</title></head><body bgcolor="#ffffff"><c:set var="co" scope="page" value="1"/>輸出變量<c:out value="$co&q
9、uot;/><c:remove var="co" scope=”page” />刪除后輸出變量<c:out value="$co"/></body></html>2. 條件標(biāo)簽JSTL 提供條件標(biāo)簽以支持 JSP 頁(yè)面中的各種條件。<c:if>:用于有條件的執(zhí)行代碼。是容器標(biāo)簽。語(yǔ)法:<c:if test=”條件表達(dá)式” var=”變量名” scope=”變量范圍”>內(nèi)容</c:if>提示:屬性var和scope是可選。<c:choose>:用于執(zhí)行條件
10、語(yǔ)句塊,類(lèi)似 Java中的switch語(yǔ)句。是容器標(biāo)簽。和<c:when><c:otherwise>一起使用。語(yǔ)法:<c:choose><c:when test=”條件1”>內(nèi)容</c:when><c:otherwise>內(nèi)容</c:otherwise></c:choose>3. 迭代標(biāo)簽迭代標(biāo)簽用于多次計(jì)算標(biāo)簽體,循環(huán)計(jì)算。<c:forEach>:語(yǔ)法:<c:forEach var="變量名" items="要遍歷的對(duì)象集合" v
11、arStatus=”變量狀態(tài)” begin=”開(kāi)始位置” end=”結(jié)束位置”>內(nèi)容</c:forEach><c:forTokens>:用于遍歷用分隔符的值的集合。語(yǔ)法:<c:forTokens var="變量名" items="要遍歷的對(duì)象集合" delims=”分隔符” varStatus=”變量狀態(tài)” >內(nèi)容</c:forEach>示例: <% page contentType="text/html; charset=GBK" %><% taglib uri
12、=" prefix="c" %><html><head><title>dtjsp</title></head><body bgcolor="#ffffff"><% String str = "hello","haha","hi" pageContext.setAttribute("sts",str);%>用forEach輸出數(shù)組對(duì)象<br><c:forEach
13、 var="va" items="$pageScope.sts" varStatus="ss"><c:out value="第$ss.count個(gè) : $va"/><br></c:forEach><br><c:set var="co" scope="page" value="1;2:3'45|9.6"/>用forTokens輸出$co<br><c:forTokens
14、 delims=":'|." items="$co" var="so" varStatus="soo"><c:out value="第$soo.count個(gè) : $so"/><br></c:forTokens></body></html>2.3. 國(guó)際化與格式化標(biāo)簽庫(kù)30分鐘什么叫國(guó)際化?例如我開(kāi)發(fā)一套系統(tǒng)中國(guó)人用,英國(guó)人也用,就是說(shuō)要求系統(tǒng)界面要有中文的和英文的,系統(tǒng)里邊日期貨幣等格式問(wèn)題也不同,是不是我們就要做兩套系統(tǒng)
15、,起碼要做兩套jsp呢?如果是,將來(lái)系統(tǒng)維護(hù)升級(jí)一個(gè)地方,我就要修改這兩套系統(tǒng)的代碼,麻煩!有沒(méi)有辦法把不同的語(yǔ)言統(tǒng)一到一個(gè)系統(tǒng)里邊呢?當(dāng)然有,我們下邊的國(guó)際化和格式化標(biāo)簽庫(kù)就可以很方便的解決問(wèn)題!I18N(在英文中, 國(guó)際化(Internationalization)被縮寫(xiě)為I18N, 即只取首尾兩個(gè)字母, 中間字母為18個(gè)) 與格式化標(biāo)簽庫(kù)可用于創(chuàng)建國(guó)際化的 Web 應(yīng)用程序。它也可用于對(duì)經(jīng)過(guò)格式化的數(shù)字和日期-時(shí)間的輸出結(jié)果進(jìn)行標(biāo)準(zhǔn)化。I18N 應(yīng)用程序的特點(diǎn)是: 可以在全世界運(yùn)行;支持多語(yǔ)言;可以快速本地化。首先導(dǎo)入國(guó)際化和格式化標(biāo)簽庫(kù):<% taglib uri="
16、prefix="fmt" %>國(guó)際化 (I18N) 與格式化標(biāo)簽庫(kù)中的標(biāo)簽有:<fmt:setLocale>:用于重寫(xiě)客戶(hù)端指定的區(qū)域設(shè)置。這是空標(biāo)簽。<fmt:bundle>:創(chuàng)建一個(gè)I18N本地化上下文,并加載它的資源包。容器標(biāo)簽。<fmt:setBundle>:創(chuàng)建一個(gè)I18N本地化上下文,并加載它的資源包,存儲(chǔ)在范圍變量里。空標(biāo)簽。<fmt:message>用于給出資源包的輸出值。注意:資源文件要保存在/WEB-INF/classes目錄下;頁(yè)面的字符集要設(shè)置為utf-8。需要把資源文件的本地編碼轉(zhuǎn)換為unico
17、de編碼,用jdk工具native2ascii。示例: reg.jsp<% page contentType="text/html; charset=utf-8" %><% taglib uri=" prefix="c" %><% taglib uri=" prefix="fmt" %><c:if test="$param.lang = 'zh_CN' | param.lang = null"> <fmt:setLocale
18、value="zh_CN" scope="session"/></c:if><c:if test="$param.lang = 'en'"> <fmt:setLocale value="en" scope="session"/></c:if><fmt:setBundle basename="reg" scope="session"/><html><head&
19、gt;<title>regjsp</title><style type="text/css"><!-.style1 font-size: 36px;font-weight: bold;-></style></head><body><p align="center" class="style1"><fmt:message key="title"/></p><form name="fo
20、rm1" method="post" action="savereg.jsp"> <table width="400" border="1" align="center"> <tr> <td width="178"><div align="right"><fmt:message key="username"/></div></td> &l
21、t;td width="206"><input name="username" type="text" id="username"></td> </tr> <tr> <td><div align="right"><fmt:message key="password"/> </div></td> <td><input name=&
22、quot;password" type="text" id="password"></td> </tr> <tr> <td><div align="right"><fmt:message key="email"/> </div></td> <td><input name="email" type="text" id="e
23、mail"></td> </tr> <tr> <td><div align="center"> <input type="reset" name="Submit" value="<fmt:message key="reset"/>"> </div></td> <td><div align="center"> <input t
24、ype="submit" name="Submit2" value="<fmt:message key="submit"/>"> </div></td> </tr> </table></form><fmt:message key="select_lang"/>: <a href="regjsp.jsp?lang=zh_CN"><fmt:message key="
25、;lang1"/></a> <a href="regjsp.jsp?lang=en"><fmt:message key="lang2"/></a></body></html>示例: reg_en. propertiestitle=Registerselect_lang=Select your perferred languagelang1=u4e2du6587lang2=Englishusername=User Namepassword=PassWordemail=E
26、-mailsubmit=Submitreset=Reset示例: reg_zh_CN. propertiestitle=u6ce8u518cselect_lang=u9009u62e9u60a8u559cu6b22u7684u8bedu8a00lang1=u4e2du6587lang2=Englishusername=u7528u6237u540dpassword=u5bc6u7801email=u90aeu7bb1submit=u63d0u4ea4reset=u91cdu7f6e2.4. SQL 標(biāo)簽庫(kù)30分鐘SQL 標(biāo)簽庫(kù)用于從 JSP 頁(yè)面訪(fǎng)問(wèn)和更新數(shù)據(jù)庫(kù)。SQL 標(biāo)簽庫(kù)具有以下功能:傳
27、遞各種數(shù)據(jù)庫(kù)查詢(xún);訪(fǎng)問(wèn)查詢(xún)結(jié)果;數(shù)據(jù)庫(kù)修改;執(zhí)行各種數(shù)據(jù)庫(kù)事務(wù)。導(dǎo)入標(biāo)簽庫(kù):<% taglib uri=" prefix="sql" %>SQL 標(biāo)簽庫(kù)中的標(biāo)簽有:<sql:setDataSource>用于為數(shù)據(jù)庫(kù)設(shè)置數(shù)據(jù)源。空標(biāo)簽。<sql:query>:查詢(xún)數(shù)據(jù)標(biāo)簽。<sql:update>:更新數(shù)據(jù)標(biāo)簽,包括了sql語(yǔ)句里的insert,update,delete操作。<sql:transaction>:事務(wù)標(biāo)簽。<sql:param>:sql參數(shù)標(biāo)簽,和<sql:query>
28、;或<sql:update>一起使用。示例: savereg.jsp<% page contentType="text/html; charset=GBK" %><% taglib uri=" prefix="c" %><% taglib uri=" prefix="sql" %><sql:setDataSource url="jdbc:odbc:liu" driver="sun.jdbc.odbc.JdbcOdbcDriver&q
29、uot; user="" password="" var="conn" scope="session"/><sql:update dataSource="$conn" var="result" scope="page"><%- insert into users(username,userpwd,email) values('$param.username','$param.password',
30、9;$param.email') -%>insert into users(username,userpwd,email) values(?,?,?)<sql:param value="$param.username"/><sql:param value="$param.password"/><sql:param value="$param.email"/></sql:update><html><head><title>savereg&l
31、t;/title></head><body bgcolor="#ffffff"><c:if test="$result > 0">$'注冊(cè)成功'</c:if><c:if test="$result <= 0">$'注冊(cè)失敗'</c:if></body></html>示例: showuser.jsp 顯示用戶(hù)表里所有用戶(hù)。<% page contentType="text/ht
32、ml; charset=GBK" %><% taglib uri=" prefix="c" %><% taglib uri=" prefix="sql" %><sql:setDataSource url="jdbc:odbc:liu" driver="sun.jdbc.odbc.JdbcOdbcDriver" user="" password="" var="conn" scope=&quo
33、t;session"/><sql:query var="user" dataSource="$conn" scope="page">select * from users</sql:query><html><head><title>showuser</title></head><body bgcolor="#ffffff"><table border="1"> <tr
34、> <c:forEach var="colname" items="$user.columnNames"> <th> <c:out value="$colname"> </c:out> </th> </c:forEach> </tr><c:forEach var="row" items="$user.rowsByIndex"> <tr> <c:forEach var="
35、;col" items="$row"> <td><c:out value="$col"></c:out></td> </c:forEach> </tr></c:forEach></table></body></html>3. 本章總結(jié) 10分鐘五分鐘: 讓學(xué)員提問(wèn)方式來(lái)提出沒(méi)學(xué)懂的地方三分鐘: 總結(jié)本課堂:JSP標(biāo)簽庫(kù)是一個(gè)通用的標(biāo)準(zhǔn)標(biāo)簽庫(kù),給我們提供了很多通用的操作。我們可以象用普通的HTML標(biāo)簽一樣來(lái)應(yīng)用它。注意區(qū)別
36、forEach標(biāo)簽和forTokens標(biāo)簽。重點(diǎn)是要熟練綜合應(yīng)用本標(biāo)簽庫(kù)對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作以及展示數(shù)據(jù)。4. 考核點(diǎn) 考核點(diǎn)1:標(biāo)準(zhǔn)標(biāo)簽庫(kù)的結(jié)構(gòu) 考核點(diǎn)2:SQL標(biāo)簽的用法5. 擴(kuò)展部分:<% taglib prefix="c" uri=" %><% taglib prefix="sql" uri=" %><html><head><title>所有客戶(hù)</title></head><body bgcolor="white">
37、;<c:set var="noOfRows" value="2" /><sql:setDataSource driver ="com.microsoft.jdbc.sqlserver.SQLServerDriver" url ="jdbc:microsoft:sqlserver:/accp:1433;DataBaseName=pubs;" user="sa" password="sa" var="conn"/><c:if te
38、st="$custList = null"><sql:query var="custList" scope="session"sql="SELECT * FROM Customers ORDER BY LastName"dataSource="$conn"/></c:if><c:choose><c:when test="$custList.rowCount = 0">此處不再有其他客戶(hù).</c:when><
39、;c:otherwise><b>以下是客戶(hù)列表:</b><p><table border="1"><th>姓氏</th><th>名字</th><th>年齡</th><c:forEach items="$custList.rows" var="row"begin="$param.start" end="$param.start +noOfRows - 1"><tr><td><c:out value="$row.LastName" /
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 消費(fèi)者感知價(jià)值下AITO問(wèn)界品牌新能源汽車(chē)購(gòu)買(mǎi)意愿驅(qū)動(dòng)因素研究
- 果園作業(yè)車(chē)自動(dòng)調(diào)平系統(tǒng)研究與設(shè)計(jì)
- 房地產(chǎn)稅對(duì)產(chǎn)業(yè)結(jié)構(gòu)升級(jí)的影響研究
- 活性炭磁改性及耦合非均相類(lèi)Fenton體系處理水中四環(huán)素的研究
- 進(jìn)展期胃癌患者反芻性沉思、創(chuàng)傷后成長(zhǎng)與生命質(zhì)量的相關(guān)性研究
- 東方鐵筷子(Helleborus orientlis)品種數(shù)量分類(lèi)及耐旱性研究
- 2025年云南錫業(yè)職業(yè)技術(shù)學(xué)院高職單招數(shù)學(xué)歷年(2016-2024)頻考點(diǎn)試題含答案解析
- 2025年內(nèi)蒙古體育職業(yè)學(xué)院高職單招語(yǔ)文2018-2024歷年參考題庫(kù)頻考點(diǎn)含答案解析
- 纖維素酶活性提升策略-洞察分析
- 2025年云南商務(wù)職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試近5年常考版參考題庫(kù)含答案解析
- 2025年度版權(quán)授權(quán)協(xié)議:游戲角色形象設(shè)計(jì)與授權(quán)使用3篇
- 心肺復(fù)蘇課件2024
- 《城鎮(zhèn)燃?xì)忸I(lǐng)域重大隱患判定指導(dǎo)手冊(cè)》專(zhuān)題培訓(xùn)
- 湖南財(cái)政經(jīng)濟(jì)學(xué)院專(zhuān)升本管理學(xué)真題
- 全國(guó)身份證前六位、區(qū)號(hào)、郵編-編碼大全
- 2024-2025學(xué)年福建省廈門(mén)市第一中學(xué)高一(上)適應(yīng)性訓(xùn)練物理試卷(10月)(含答案)
- 《零售學(xué)第二版教學(xué)》課件
- 廣東省珠海市香洲區(qū)2023-2024學(xué)年四年級(jí)下學(xué)期期末數(shù)學(xué)試卷
- 房地產(chǎn)行業(yè)職業(yè)生涯規(guī)劃
- 江蘇省建筑與裝飾工程計(jì)價(jià)定額(2014)電子表格版
- MOOC 數(shù)字電路與系統(tǒng)-大連理工大學(xué) 中國(guó)大學(xué)慕課答案
評(píng)論
0/150
提交評(píng)論