版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、課程名稱:Java Web應用開發(fā) 北大青鳥Aptech·學術(shù)部Java Web應用開發(fā)教案第十一章 JSP標準標簽庫2011-7-171.回顧:10分鐘22.課程知識點講解:22.1.JSTL 簡介5分鐘32.2.核心標簽庫20分鐘32.3.國際化與格式化標簽庫30分鐘52.4.SQL 標簽庫30分鐘73.本章總結(jié) 10分鐘84.考核點95.擴展部分:96.學員問題匯總:97.作業(yè):91 回顧:10分鐘2 課程知識點講解11 JSTL 簡介5分鐘核心標簽庫、國際化(I18N) 與格式化標簽庫、XML 標簽庫以及SQL 標簽庫;JSTL 標簽庫的兩種版本;使用JSTL 的taglib
2、 指令;12 核心標簽庫20分鐘<c:set>、<c:remove>;<c:out>;<c:if>;<c:choose>;<c:forEach>;<c:forTokens>;13 國際化與格式化標簽庫30分鐘<fmt:setLocale>;<fmt:bundle>;<fmt:setBundle>;<fmt:message>;理解資源文件;14 SQL 標簽庫30分鐘<sql:setDataSource>;<sql:query>;<sq
3、l:update>;<sql:transaction>;<sql:param>;3 本章總結(jié)10分鐘4 學員問題匯總5 作業(yè)授課教師:謝華軍課時:2小時l 本章主要目的1、理解核心標簽庫2、理解I18N 和格式標簽3、理解SQL 標簽庫l 本章重點理解JSTL 的概念和如何使用標準標簽庫編寫JSP 頁面l 本章難點SQL 標簽庫1. 回顧:10分鐘提問:定義簡單標簽的處理程序文件需要幾個步驟?自定義標簽是用戶定義的 JSP 語言元素標簽處理程序是一個對象,Web 容器調(diào)用此對象,以在執(zhí)行 JSP 頁面的過程中解釋自定義標簽簡單標簽的處理程序必須實現(xiàn) Tag 接口的
4、 doStartTag() 和 doEndTag() 方法標簽庫描述符 (TLD, Tag Library Descriptor) 包含庫以及該庫中所包含的每個標簽的信息標簽文件,用更簡單的方式來自定義標簽。2. 課程知識點講解:2.1. JSTL 簡介5分鐘從上節(jié)自定義標簽作引入:我們無論做什么系統(tǒng),在jsp編寫中或許會遇到相同或者相似的操作,例如對變量的輸出以及賦值操作,一些條件處理以及對一個集合的循環(huán)操作,還有連接查詢數(shù)據(jù)庫等通用的操作,這些如果用標簽實現(xiàn)是不是要每做一個項目都要作一套標簽么?如果有現(xiàn)成的這種標準庫那不就方便多了!答案是肯定的!下面要講述的就是這種標簽庫。JSTL 是什么
5、:Java Server Pages 標準標簽庫 (JSTL) 包含的各種標簽可用于 JSP 頁面中。 JSP 標準標簽庫 (JSTL) - 提供兩組標簽,一組使用 EL(Expression Language,表達式語言),而另一組支持使用請求時表達式。為什么要用JSTL:可以編寫沒有java代碼的jsp頁面。使JSP頁面很容易被WEB設計人員理解,表達更清晰。減少程序出錯,是程序容易維護。 JSP 標準標簽庫包括:核心標簽庫,I18N與格式化標簽庫,SQL標簽庫,XML標簽庫。核心標簽庫:包含各種常用的標簽,如通用,迭代,條件等標簽。I18N與格式化標簽庫:包含國際化標簽和格式化標簽。SQ
6、L標簽庫:包含數(shù)據(jù)庫訪問和更新的標簽。XML標簽庫:包含對XML操作的標簽。2.2. 核心標簽庫20分鐘要使用核心標簽庫,必須先導入核心標簽庫的URI,語法如下:<% taglib uri=” prefix=”c” %>1. 通用標簽通用標簽庫用于操作 JSP 頁面內(nèi)的作用域變量。<c:set>:設置jsp中的變量,如果不存在就創(chuàng)建它。語法:<c:set var=”變量名” value=” 變量值” scope=”作用域范圍”>作用域范圍,是page,request,session,application中的一個,默認是page。<c:remove&g
7、t;:用于刪除創(chuàng)建的變量。語法:<c:set var=”變量名” scope=”作用域范圍”>作用域范圍,是page,request,session,application中的一個,默認是page。<c:out>:輸出表達式值到頁面。語法:<c:out value=”要輸出的值” escapeXml=”truefalse” default=”默認值”>escapeXml,確定是否將結(jié)果中的字符(如<,>,&,”,)轉(zhuǎn)化乘字符實體代碼,默認為true。教材192上有個轉(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. 條件標簽JSTL 提供條件標簽以支持 JSP 頁面中的各種條件。<c:if>:用于有條件的執(zhí)行代碼。是容器標簽。語法:<c:if test=”條件表達式” var=”變量名” scope=”變量范圍”>內(nèi)容</c:if>提示:屬性var和scope是可選。<c:choose>:用于執(zhí)行條件
10、語句塊,類似 Java中的switch語句。是容器標簽。和<c:when><c:otherwise>一起使用。語法:<c:choose><c:when test=”條件1”>內(nèi)容</c:when><c:otherwise>內(nèi)容</c:otherwise></c:choose>3. 迭代標簽迭代標簽用于多次計算標簽體,循環(huán)計算。<c:forEach>:語法:<c:forEach var="變量名" items="要遍歷的對象集合" v
11、arStatus=”變量狀態(tài)” begin=”開始位置” end=”結(jié)束位置”>內(nèi)容</c:forEach><c:forTokens>:用于遍歷用分隔符的值的集合。語法:<c:forTokens var="變量名" items="要遍歷的對象集合" 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ù)組對象<br><c:forEach
13、 var="va" items="$pageScope.sts" varStatus="ss"><c:out value="第$ss.count個 : $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個 : $so"/><br></c:forTokens></body></html>2.3. 國際化與格式化標簽庫30分鐘什么叫國際化?例如我開發(fā)一套系統(tǒng)中國人用,英國人也用,就是說要求系統(tǒng)界面要有中文的和英文的,系統(tǒng)里邊日期貨幣等格式問題也不同,是不是我們就要做兩套系統(tǒng)
15、,起碼要做兩套jsp呢?如果是,將來系統(tǒng)維護升級一個地方,我就要修改這兩套系統(tǒng)的代碼,麻煩!有沒有辦法把不同的語言統(tǒng)一到一個系統(tǒng)里邊呢?當然有,我們下邊的國際化和格式化標簽庫就可以很方便的解決問題!I18N(在英文中, 國際化(Internationalization)被縮寫為I18N, 即只取首尾兩個字母, 中間字母為18個) 與格式化標簽庫可用于創(chuàng)建國際化的 Web 應用程序。它也可用于對經(jīng)過格式化的數(shù)字和日期-時間的輸出結(jié)果進行標準化。I18N 應用程序的特點是: 可以在全世界運行;支持多語言;可以快速本地化。首先導入國際化和格式化標簽庫:<% taglib uri="
16、prefix="fmt" %>國際化 (I18N) 與格式化標簽庫中的標簽有:<fmt:setLocale>:用于重寫客戶端指定的區(qū)域設置。這是空標簽。<fmt:bundle>:創(chuàng)建一個I18N本地化上下文,并加載它的資源包。容器標簽。<fmt:setBundle>:創(chuàng)建一個I18N本地化上下文,并加載它的資源包,存儲在范圍變量里??諛撕灐?lt;fmt:message>用于給出資源包的輸出值。注意:資源文件要保存在/WEB-INF/classes目錄下;頁面的字符集要設置為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 標簽庫30分鐘SQL 標簽庫用于從 JSP 頁面訪問和更新數(shù)據(jù)庫。SQL 標簽庫具有以下功能:傳
27、遞各種數(shù)據(jù)庫查詢;訪問查詢結(jié)果;數(shù)據(jù)庫修改;執(zhí)行各種數(shù)據(jù)庫事務。導入標簽庫:<% taglib uri=" prefix="sql" %>SQL 標簽庫中的標簽有:<sql:setDataSource>用于為數(shù)據(jù)庫設置數(shù)據(jù)源??諛撕?。<sql:query>:查詢數(shù)據(jù)標簽。<sql:update>:更新數(shù)據(jù)標簽,包括了sql語句里的insert,update,delete操作。<sql:transaction>:事務標簽。<sql:param>:sql參數(shù)標簽,和<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:if><c:if test="$result <= 0">$'注冊失敗'</c:if></body></html>示例: showuser.jsp 顯示用戶表里所有用戶。<% 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分鐘五分鐘: 讓學員提問方式來提出沒學懂的地方三分鐘: 總結(jié)本課堂:JSP標簽庫是一個通用的標準標簽庫,給我們提供了很多通用的操作。我們可以象用普通的HTML標簽一樣來應用它。注意區(qū)別
36、forEach標簽和forTokens標簽。重點是要熟練綜合應用本標簽庫對數(shù)據(jù)庫進行操作以及展示數(shù)據(jù)。4. 考核點 考核點1:標準標簽庫的結(jié)構(gòu) 考核點2:SQL標簽的用法5. 擴展部分:<% taglib prefix="c" uri=" %><% taglib prefix="sql" uri=" %><html><head><title>所有客戶</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">此處不再有其他客戶.</c:when><
39、;c:otherwise><b>以下是客戶列表:</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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年第一學期語文科組教研工作計劃范文
- 2025年小學雙語教學的工作計劃
- 創(chuàng)造力培養(yǎng)在美術(shù)教學中的重要性計劃
- 車站車庫保安執(zhí)勤心得
- 游戲行業(yè)顧問工作總結(jié)改善游戲用戶體驗
- 公園的環(huán)境衛(wèi)生管理要求
- 2025年國培計劃心得體會
- 制定有效的年度招商引資策略計劃
- 體育賽事行業(yè)營銷總結(jié)
- 老年護理科護士工作總結(jié)
- 2024年股東股權(quán)繼承轉(zhuǎn)讓協(xié)議3篇
- 2025年中央歌劇院畢業(yè)生公開招聘11人歷年高頻重點提升(共500題)附帶答案詳解
- 北京市高校課件 開天辟地的大事變 中國近代史綱要 教學課件
- 監(jiān)事會年度工作計劃
- 2024中國近海生態(tài)分區(qū)
- 2024年認證行業(yè)法律法規(guī)及認證基礎知識
- 新生兒聽力篩查技術(shù)規(guī)范衛(wèi)生部2010年版
- 大貓英語分級閱讀 六級1 Arthur's Fantastic Party課件
- SCA自動涂膠系統(tǒng)培訓講義
- LEC法取值標準對照表
- 華中數(shù)控車床編程及操作
評論
0/150
提交評論