自定義標(biāo)簽庫_第1頁
自定義標(biāo)簽庫_第2頁
自定義標(biāo)簽庫_第3頁
自定義標(biāo)簽庫_第4頁
自定義標(biāo)簽庫_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、第第五五章章JSPJSP標(biāo)準(zhǔn)動作標(biāo)準(zhǔn)動作2預(yù)習(xí)檢查什么是什么是JavaBean?在在JSP中如何使用中如何使用JavaBean?3掌握掌握J(rèn)avaBean的概念的概念會使用會使用JSP標(biāo)準(zhǔn)動作標(biāo)準(zhǔn)動作掌握常用的動作掌握常用的動作本章目標(biāo)JavaBean最早由最早由SUN公司提出規(guī)范,代表可重復(fù)運(yùn)用的組公司提出規(guī)范,代表可重復(fù)運(yùn)用的組件,來自于件,來自于Delphi、VB中空間思想但是又與眾不中空間思想但是又與眾不同。同。從可視化組件到非可視組件的概念應(yīng)用從可視化組件到非可視組件的概念應(yīng)用MVC技術(shù)中的技術(shù)中的Model實(shí)現(xiàn)者實(shí)現(xiàn)者具有明確的規(guī)范要求具有明確的規(guī)范要求4規(guī)范中定義特點(diǎn)1.實(shí)現(xiàn)實(shí)現(xiàn)

2、java.io.Serializable接口接口2.提供無參數(shù)的構(gòu)造器提供無參數(shù)的構(gòu)造器3.提供提供get和和set方法訪問它的方法訪問它的屬性屬性4、命名規(guī)范性、命名規(guī)范性56封裝數(shù)據(jù)的JavaBeanpublic class User private String name;/ 用戶名用戶名 private String passwd;/ 密碼密碼 public User() public void setName(String name) this. name = name; public String getName() return name; /其它屬性的其它屬性的setter、g

3、etter方法方法JavaBean - User.java將屬性聲明為私有屬性將屬性聲明為私有屬性無參的公有構(gòu)造方法無參的公有構(gòu)造方法公有的設(shè)置屬性值方法公有的設(shè)置屬性值方法setXxx( )公有的獲取屬性值方法公有的獲取屬性值方法getXxx( )7創(chuàng)建JavaBean 使用Eclipse工具自動生成getter/setter方法JavaBean與JSP廣義講廣義講,符合規(guī)范的符合規(guī)范的Java類都類都是是JavaBeanJavaBean的作用的作用封裝數(shù)據(jù)處理業(yè)務(wù)邏輯JSP與與JavaBean如何結(jié)合使用呢?如何結(jié)合使用呢?Scriptlet JSP標(biāo)準(zhǔn)動作 /89為什么需要JSP標(biāo)準(zhǔn)動作

4、通過Java 腳本使用后臺JavaBean美工難以維護(hù)使用JSP標(biāo)準(zhǔn)動作JSP標(biāo)準(zhǔn)動作包括:JSP 標(biāo)準(zhǔn)動作標(biāo)準(zhǔn)動作10JSP 標(biāo)準(zhǔn)動作JSP 標(biāo)準(zhǔn)動作包括:JSP 標(biāo)準(zhǔn)動作標(biāo)準(zhǔn)動作11useBean 動作.useBean動作創(chuàng)建或者獲得一個對象JavaBean 的scope設(shè)置 :創(chuàng)建對象的名稱創(chuàng)建對象的名稱創(chuàng)建對象的類型創(chuàng)建對象的類型指定對象的范圍指定對象的范圍范圍范圍說明說明pageBean 對象只能在當(dāng)前頁面使用,當(dāng)加載新頁面時就會被銷毀requestBean對象在一個請求過程中存在sessionBean對象在一個會話中存在,直至?xí)捚浣K止或被刪除為止applicationBean對象

5、在整個應(yīng)用程序中均可使用12setProperty和getProperty動作.value設(shè)置設(shè)置 JavaBean 的該屬性值的該屬性值property指定指定 JavaBean 的屬性名稱的屬性名稱 設(shè)置JavaBean的屬性值 獲取JavaBean中屬性的值.name 屬性指定對屬性指定對 JavaBean 類類的引用,與的引用,與useBean中的中的id一致一致property指定指定 JavaBean 的屬性名稱的屬性名稱name 屬性指定對屬性指定對 JavaBean 類的引用類的引用13JSP標(biāo)準(zhǔn)動作示例使用使用JSP標(biāo)準(zhǔn)動作顯示數(shù)據(jù)標(biāo)準(zhǔn)動作顯示數(shù)據(jù) - processorde

6、r.jsp jsp:setProperty name=order property=userName value=/ /設(shè)置其它屬性值設(shè)置其它屬性值 用戶名:用戶名: . 郵編:郵編: . 電電 話:話: . 信用卡:信用卡: . 總價:總價: . 獲得屬性值,并顯示在頁面上獲得屬性值,并顯示在頁面上獲得用戶提交數(shù)據(jù),并為屬性賦值獲得用戶提交數(shù)據(jù),并為屬性賦值14param的使用使用使用param顯示數(shù)據(jù)顯示數(shù)據(jù) - processorder.jsp /設(shè)置其它屬性值設(shè)置其它屬性值用戶名:用戶名: . /顯示顯示order對象其它屬性值對象其它屬性值姓姓 名名: .總總 價價: . 獲得用戶提

7、交數(shù)據(jù)獲得用戶提交數(shù)據(jù)獲得屬性值,并顯示在頁面上獲得屬性值,并顯示在頁面上自動轉(zhuǎn)換數(shù)據(jù)類型自動轉(zhuǎn)換數(shù)據(jù)類型15現(xiàn)場編程請使用JSP標(biāo)準(zhǔn)動作創(chuàng)建一JavaBean對象,并對該對象的屬性進(jìn)行賦值類所在的包和類名:com.entity.Users類的屬性userName,password16常見錯誤 要與表單元素名稱對應(yīng)要與表單元素名稱對應(yīng)數(shù)據(jù)顯示為數(shù)據(jù)顯示為null17常見錯誤 應(yīng)該是應(yīng)該是userName這是什么錯誤?這是什么錯誤?在在Order中沒有找到屬性中沒有找到屬性userName2屬性名稱錯誤屬性名稱錯誤18常見錯誤 應(yīng)該是應(yīng)該是“order”,要與,要與useBean中的中的id一致

8、一致引用名稱錯誤引用名稱錯誤這是什么錯誤?這是什么錯誤?19JSP標(biāo)準(zhǔn)動作調(diào)用JavaBean JSP標(biāo)準(zhǔn)動作與JavaBean的getter、setter方法public class Simplebean private String name; private int age; public Simplebean() /無參的構(gòu)造函數(shù)無參的構(gòu)造函數(shù)System.out.println(調(diào)用無參構(gòu)造方法,創(chuàng)建實(shí)例調(diào)用無參構(gòu)造方法,創(chuàng)建實(shí)例!); public String getName() /屬性的屬性的getter方法方法System.out.println(調(diào)用了調(diào)用了getName(

9、)方法,獲取方法,獲取name值值);return name; public void setName(String username) /屬性的屬性的setter方法方法name = username;System.out.println(調(diào)用了調(diào)用了setName()方法,設(shè)置方法,設(shè)置name值值); SimpleBean.java方法是誰調(diào)用的?方法是誰調(diào)用的?在在 JSP 中使用中使用 JavaBean 姓名:姓名: 年齡:年齡:setProperty動作調(diào)用動作調(diào)用JavaBean的的setter方法方法getProperty動作調(diào)用動作調(diào)用JavaBean的的getter方法方法

10、20使用標(biāo)準(zhǔn)動作實(shí)現(xiàn)登錄驗(yàn)證public boolean getValid() Connection con = ConnectionManager.getConnection(); PreparedStatement pStatement = null; String sql = select * from userinfo where loginname = ?; try pStatement = con.prepareStatement(sql); pStatement.setString(1, getName(); ResultSet rs = pStatement.executeQu

11、ery(); if (rs.next() & rs.getString(password).equals(getPassword() valid = true; else valid = false; catch (Exception ex) ex.printStackTrace(); return valid;UserManager.java判斷是否存在該用戶判斷是否存在該用戶演示示例演示示例2: UserManager.java 登錄驗(yàn)證21標(biāo)準(zhǔn)動作和JavaBean使用JSP標(biāo)準(zhǔn)動作和JavaBean進(jìn)行數(shù)據(jù)驗(yàn)證 創(chuàng)建創(chuàng)建UserManager對象,并為屬性賦值對象,并為屬性賦值

12、調(diào)用驗(yàn)證方法,判斷用戶是否存在調(diào)用驗(yàn)證方法,判斷用戶是否存在JSP標(biāo)準(zhǔn)動作,轉(zhuǎn)發(fā)到標(biāo)準(zhǔn)動作,轉(zhuǎn)發(fā)到page屬性指定的頁面,等價屬性指定的頁面,等價與與RequestDispatcher對象的對象的forward(req,res)方法方法根據(jù)結(jié)果,轉(zhuǎn)發(fā)到相應(yīng)頁面根據(jù)結(jié)果,轉(zhuǎn)發(fā)到相應(yīng)頁面register.jsp22Model I介紹Model I設(shè)計(jì)模式JSP+JavaBean(View + Model)Model I和Model II的對比Model II即MVC設(shè)計(jì)模式Model I缺少控制器(Controller),不易維護(hù)和擴(kuò)展Model I適用于開發(fā)中、小型項(xiàng)目23自定義標(biāo)簽是遵循 格式

13、的標(biāo)準(zhǔn) HTML 標(biāo)簽嵌入 Java 代碼標(biāo)簽處理程序文件前綴自定義標(biāo)簽什么是自定義標(biāo)簽? 24示例顯示一個加法的示例顯示一個加法的示例顯示一個歡迎的示例顯示一個歡迎的示例25JSP自定義標(biāo)簽的優(yōu)點(diǎn)分離了程序邏輯和表示邏輯分離了程序邏輯和表示邏輯將將Java代碼從代碼從HTML中剝離,便于美工維護(hù)頁面中剝離,便于美工維護(hù)頁面減少了減少了JSP頁面中的腳本,減少了維護(hù)成本頁面中的腳本,減少了維護(hù)成本提供了可重用的功能組件提供了可重用的功能組件26JSP 頁面應(yīng)用程序部署描述符標(biāo)簽處理程序的組件標(biāo)簽庫描述符標(biāo)簽處理程序標(biāo)簽庫27實(shí)現(xiàn)方式實(shí)現(xiàn)方式實(shí)現(xiàn)方式實(shí)現(xiàn)方式自定義標(biāo)簽標(biāo)簽處理程序標(biāo)簽文件自定義標(biāo)簽28標(biāo)簽處理程序Java 文件實(shí)現(xiàn)或擴(kuò)展 Tag、IterationTag 或 BodyTag 接口定義 doStartTag() 方法通過調(diào)用 release() 方法取消引用標(biāo)簽處理程序?qū)嵗枰獦?biāo)簽庫描述符來實(shí)現(xiàn)標(biāo)簽處理程序29基本的標(biāo)簽生命周期 doStartTag()返回值setbodyContent()dolnitBody()doAfterBody()返回值doEndTag()releas

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論