亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JSP > 正文

jsp 標準標簽庫簡析

2020-07-27 21:39:40
字體:
來源:轉載
供稿:網友
一、JSTL簡介
引入:在JSP以及javaBean中 ,當我們在網頁中使用循環,或者使用對象方法連接數據庫時,我們都不可避免的需要使用到jsp的腳本編制元素,其中嵌有大量的java代碼,現在開發者想盡可能的避免使用jsp腳本編制元素,進一步將應用程序的顯示層和業務層完全分離,更加有利于應用程序的分工協作,jsp開發者指定了 JSTL ,提供了一組統一的通用的自定義標簽文件,并將這些文件組合在一起,形成了jsp標準標簽庫,即JSTL。
1) 定義:包含編寫和開發JSP頁面的一組標準標簽
a) 特點:為開發者提供了一個無腳本環境,無需編寫JAVA腳本
b) 包含
1. 核心標簽庫
2. SQL標簽庫
3. 國際化(I18N)與格式化標簽庫
4. XML標簽庫
c) 分類 : 兩個版本
1. 使用 EL
2. 使用請求時表達式
2) 作用
a) 進一步簡化開發,簡化頁面, 實現頁面脫離jsp腳本元素
b) 讓頁面盡可能少的出現java代碼
c) 優勢:與EL表達式配合使用,可以用EL 代替屬性值 進一步動態改變
3) 使用
a) 導入標簽庫(Eclipse等工具中需要做這一步)
b) 使用標簽庫中標簽的實施步驟
i. 將JSTL對應的JAR文件:jstl.jar、standard.jar添加到應用程序的WEB-INF/lib目錄(這兩個jar文件見課件目錄” JSTL標簽庫”)
ii. 在編寫的jsp頁面中指定標簽庫的描述信息:
語法:<%@ taglib prefix=”c” uri=”http://java.sun.com/jstl/core_rt” %>
關于上述語法使用的擴充:
<%@ taglib prefix =”標簽別名” uri =”標簽庫的位置“>
1. 標簽別名常用c
2. 標簽庫的位置:(即uri的設置)
a) 教材上:” http://java.sun.com/jstl/core_rt “ 指向sun公司網站上的庫文件地址,注意這里只是個地址指向,即使沒有上網,在工具中也已經對應到工程中的路徑了(注意:此時要先將標簽庫的兩個jar文件放入”工程/WEB-INF/lib”目錄下。)
b) 也可使用:”/WEB-INF/c.tld ”(但要注意:此時要先將標簽庫兩個jar文件中的一個standard.jar文件解壓后的目錄META-INF中的所有*.tld文件放入”工程名/WEB-INF/”目錄下,即保證該目錄下有c.tld文件)
注意:上述兩種導入標簽庫的方式,以第一種為佳,即只需要將兩個標簽庫jar文件放入”工程/WEB-INF/lib”目錄下即可。
c) 在JSP中使用
3. <c: xxxxxx 屬性名=“屬性值” 屬性名=“屬性值”>
4. xxxxx就是標簽庫中提供的各種功能,詳述如下:
二、核心標簽庫-----core 或 c.tld
a) 分類:
1. 通用標簽:操作JSP頁面創建的范圍變量
2. 條件標簽:操作條件運算 判斷與處理
3. 循環標簽:操作循環運算
b) 通用標簽
1. 設置,刪除,顯示在JSP頁面內創建的變量值或對象值
2. 變量的范圍是由設置時的scope 屬性決定
3. <c: set> 用于設置變量或者對象屬性的值
<c:set var=”變量名” value=”變量值” scope=”作用域范圍”/>
<c:set target=”對象名” property=”屬性名” value=”值”/>
:注意: “變量值” 可以是 EL表達式
4. <c: out> 用于動態顯示數據(功能類似于EL)
1:<c:out value=” 表達式” default=”默認值” escapeXml=”true/false” >
2: 注意:表達式 可以是 1》普通的常量值
2》輸出已經設置的變量值:${變量的名稱}
5. <c: remove>用于刪除創建的變量
a) <c:remove var=”變量的名稱” scope =”作用域”>
(案例:演示上面幾個標簽)
c) 條件標簽
1. 提供條件運算, 兩種類型: if choose
2. <c: if> 語法
a) <c:if test=”條件 ” var=” 存放測試條件結果的變量” scope=”作用域” >
b) 。。。。。。。條件體
c) </c:if>
d) var 存放的是:結果為true 或 false
e) 不能實現else 由下面的實現
3. <c:choose>語法
a) <c:choose>
i. <c:when test=”條件表達式1”>
ii.需要處理的語句1
iii. </c:when>
iv. <c:when test=”條件表達式2”>
v.需要處理的語句2
vi. </c:when>
vii. <c:otherwise>
viii.需要處理的語句
ix. </c:otherwise>
b) </c:choose>
(案例 three.jsp)
d) 迭代標簽
1. 分兩種: forEach forTokens
2. forEach
簡單的應用
<c:forEach var=”循環控制變量” test=”循環條件” begin=”循環開始值” end=”循環結束值” varStatus=”保存循環狀態的變量”>
循環體
</forEach>
用于集合對象的訪問
<c:forEach var=”存放集合當前記錄的變量” items=”要輪循的集合名” begin=”集合的起始索引位置” end=”集合的結束位置”>
</forEach>
注意:如果沒有設置begin,end將檢索所有元素,step沒設置默認為1
3. forTokens (與<c:forEach>有區別,用于輪循一個字符串)
<c:forTokens items=”要輪循的字符串” delims=”單詞的分界符” var=”存放單詞的變量”>
</c:forTokens>
(案例: 演示上面幾個標簽)
三、SQL 標簽庫---- sql.tld
一般的企業級的應用是離不開數據庫操作的,在許多時候都需要在JSP頁面中訪問數據庫,因此提供對數據庫訪問的支持就變的十分重要了,在JSTL中的SQL標記庫就提供了一套可以對數據庫進行訪問,查詢,更新等操作的標記,極大的方便了JSP頁面中數據庫訪問
1、 作用:用于進行數據庫的操作
2、 在JSP頁面中加入標簽庫
<%@ taglib uri=“http://java.sun.com/jstl/sql_rt ” prefix=”sql” %>
3、 具體使用標記
a) 設置數據源<sql:setDataSource>
具體用法:<sql:setDataSource driver=”驅動類路徑” url=”連接的數據庫設置” user=”用戶名” password=”密碼” var=”連接對象名”/>
b) 查詢數據<sql:query>
具體用法:
① <sql:query sql=”查詢語句” var=”結果集名” scope=”結果集保存的范圍” dataSource=”關聯的數據源對象” maxRows=”最大行數” startRow=”開始行的索引”/>
② <sql:query var=”結果集名” scope=”保存范圍”>
select 語句
</sql:query>
操作獲取的結果集
<sql:query var=”students” scope=”session” sql=”select * from stu” dataSource=”conn”/>
${students.rowCount}可返回結果集中的數據行數
${students.columnNames}可返回所有字段的集合
${students.rowByIndex}返回結果集中某行的數據集合
c) 數據更新<sql:update>
具體用法:
① <sql:update sql=”SQL語句” dataSource=”數據源對象名”/>
② <sql:update dataSource=”數據源對象名”>
SQL語句
</sql:query>
d) 事務應用<sql:transaction>
具體用法:
<sql:transaction dataSource=”數據源對象名”isolation=”事務隔離級別”>
<sql:query>或者<sql:update>
</sql:transaction>
其中上面的隔離級別:
read_committed,read_uncommited,repeatable,serializable
注意:如果在事務中設置了dataSource屬性,在里面的標記中就不需設置了。
e) 參數設置<sql:param>
① 作用:在作查詢或者數據操作時參數的設置
② 使用:通常是做為<sql:query>和<sql:update>標記的子標記
案例:
<sql:query dataSource=”conn” var=”stus” scope=”page”>
select * from student where stuage>?
<sql:param value=”參數值”/>
</sql:query>
四、國際化和格式化標簽----fmt 或 fmt.tld
1、 作用:對數字和日期時間的輸出進行標準化,解決中文亂碼問題
2、 在jsp頁面加入標簽庫
<%@ taglib uri=“http://java.sun.com/jstl/fmt_rt” prefix=”fmt” %>
3、 具體標簽的使用
a) <fmt:setLocale>
① 作用:用于JSP頁面的本地化
② 使用:<fmt:setLocale value=”語言和區域”/>
b) <fmt:formatNumber>
① 作用:用于JSP頁面數據的格式化
② 使用:<fmt:formatNumber type=”number|currency|percent” value=”要格式化的數據” />
c) <fmt:formatDate>
① 作用:用于JSP頁面日期的格式化
② 使用:<fmt:formatDate type=”time|date|both” value=”要格式化的日期數據”/>
d) <fmt:requestEncoding>
① 作用:指定請求數據的編碼方式
② 使用:<fmt:requestEncodding value=”編碼方式” />
例如:<fmt:requestEncoding value=”gb2312”/>
一般地,也可這樣使用:
a) 創建好 屬性文件 比如叫 len_zh .properties
b) <fmt:setLocale value=”指向文件的名稱 zh”> (zh為中文,en為英文,固定的,Y2課程里會講到。)
c) <fmt:setBundle basename=”文件的名稱 len”> (len為自起名稱)
d) <fmt:message key=”屬性文件中的關鍵字”> (屬性文件為len_zh .properties)
注意:國際化時,*.properties文件要放在classes目錄下。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲一区二区三区视频播放| 91免费人成网站在线观看18| 久久在线免费视频| 国产精品高潮呻吟视频| 国产成人精品久久二区二区| 欧美大肥婆大肥bbbbb| 亚洲精品欧美日韩专区| 欧美xxxx综合视频| 日韩欧美国产高清91| 久久久久久香蕉网| 91亚洲精品久久久久久久久久久久| 国产精品久久久久久久天堂| 78m国产成人精品视频| 亚洲a∨日韩av高清在线观看| 久久伊人精品天天| 国产精品亚洲欧美导航| 91亚洲精品久久久| 国产+人+亚洲| 欧美不卡视频一区发布| 久久久国产在线视频| 日韩中文字幕亚洲| 亚洲www在线观看| 成人免费直播live| 国产成人精品视| 国内揄拍国内精品少妇国语| 91系列在线播放| 亚洲激情视频在线| 97香蕉久久超级碰碰高清版| 国产成人激情视频| 亚洲色图美腿丝袜| 亚洲成人激情在线| 国产精品自在线| 精品国模在线视频| 精品国产乱码久久久久酒店| 欧美老妇交乱视频| 一区二区三区 在线观看视| 精品欧美国产一区二区三区| 国产精品免费小视频| 日韩av网站在线| 性欧美xxxx| 国产精品网站视频| 亚洲精品免费一区二区三区| 亚洲男人天堂网| 国产主播精品在线| 永久免费毛片在线播放不卡| 亚洲一区二区在线| 日本久久久a级免费| 国产99久久精品一区二区 夜夜躁日日躁| 不卡av日日日| 亚洲成人久久网| 亚洲一区www| 亚洲免费电影在线观看| 日韩禁在线播放| 在线看日韩av| 亚洲a∨日韩av高清在线观看| 中文字幕在线成人| 欧美电影免费看| 欧美亚洲成人精品| 久久久久久亚洲精品不卡| 久久久www成人免费精品| 精品国偷自产在线| 久久国产精品偷| 97免费视频在线播放| 91网在线免费观看| 欧美日韩国产精品一区二区不卡中文| 久久精品成人欧美大片古装| 91精品视频播放| 欧美电影电视剧在线观看| 亚洲福利视频在线| 国产亚洲综合久久| 狠狠色噜噜狠狠狠狠97| 国产精品视频一区二区三区四| 国产精品99久久久久久久久久久久| 久久亚洲国产精品成人av秋霞| 上原亚衣av一区二区三区| 91精品国产高清自在线| 国产成+人+综合+亚洲欧洲| 亚洲乱码一区二区| 热re99久久精品国产66热| 国产精品久久久久av免费| 国产美女久久精品香蕉69| 亚洲第一精品夜夜躁人人爽| 成人免费看吃奶视频网站| 国产综合香蕉五月婷在线| 国产中文字幕亚洲| 成人做爽爽免费视频| 亚洲一区二区三区四区在线播放| 91午夜理伦私人影院| 俺也去精品视频在线观看| 欧美国产一区二区三区| 精品国产福利在线| 欧美综合在线第二页| 亚洲电影免费在线观看| www.色综合| 日本不卡高字幕在线2019| 色综合久久中文字幕综合网小说| 久久久电影免费观看完整版| 亚洲一区二区福利| 久久伊人91精品综合网站| 亚洲午夜精品久久久久久性色| 亚洲国产91精品在线观看| 国产精品成人一区二区三区吃奶| 中文字幕无线精品亚洲乱码一区| 成人高h视频在线| 国产精品男女猛烈高潮激情| 国产精品三级美女白浆呻吟| 亚洲丝袜在线视频| 欧美视频在线视频| 日韩av免费在线播放| 日本精品一区二区三区在线播放视频| 国产精品91久久久| 97婷婷大伊香蕉精品视频| 亚洲xxx视频| 亚洲欧美日韩一区在线| 亚洲一二三在线| 日韩福利伦理影院免费| 久久九九国产精品怡红院| 国产精品久久久久999| 亚洲人线精品午夜| 亚洲日本aⅴ片在线观看香蕉| 成人免费观看49www在线观看| 亚洲一区二区三区久久| 欧美中文在线观看国产| 欧美一级bbbbb性bbbb喷潮片| 久久在线免费视频| 精品国产一区二区三区久久狼黑人| 国产成人精品日本亚洲| 亚洲人高潮女人毛茸茸| 欧美丝袜第一区| 日韩成人激情影院| 亚洲国产精品中文| 欧洲成人在线视频| 欧美一级淫片丝袜脚交| 久久久久久久久亚洲| 国产一区二区三区直播精品电影| 久久精品国产亚洲精品| 欧美体内谢she精2性欧美| 色妞久久福利网| 欧洲日本亚洲国产区| 国产91精品最新在线播放| 久久五月情影视| 91亚洲精品在线观看| 亚洲最新在线视频| 中文字幕日韩av综合精品| 国模吧一区二区| 日韩有码片在线观看| 一区二区在线视频播放| 国产成人精品免高潮在线观看| 成人免费激情视频| 久热爱精品视频线路一| 91成人在线播放| 国内揄拍国内精品少妇国语| 亚洲精品成人免费| 国产91精品在线播放| 成人激情视频在线观看| 98精品国产高清在线xxxx天堂| 日韩av免费在线观看| 亚洲精品动漫100p| 欧美成人午夜激情视频| 亚洲欧洲自拍偷拍| 清纯唯美日韩制服另类| 精品久久久久久久久久久久| 欧美激情亚洲一区| 91精品国产电影|