javaWEB_JavaWEB案例_第1頁(yè)
javaWEB_JavaWEB案例_第2頁(yè)
javaWEB_JavaWEB案例_第3頁(yè)
javaWEB_JavaWEB案例_第4頁(yè)
javaWEB_JavaWEB案例_第5頁(yè)
已閱讀5頁(yè),還剩45頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、功能分析總體架構(gòu) MVC 設(shè)計(jì)模式: Model:POJOPOJO(Plain Old Java ObjectPlain Old Java Object) Controller:ServletServlet View:JSP + EL + JSTLJSP + EL + JSTLJSPServletPOJOServiceDAOMySQL技術(shù)選型 數(shù)據(jù)庫(kù):MySQLMySQL 數(shù)據(jù)源:C3P0 C3P0 JDBC 工具:DBUtilsDBUtils 事務(wù)解決方案:Filter + Filter + ThreadLocalThreadLocal Ajax 解決方案:jQueryjQuery + Ja

2、vaScript + JSON + JavaScript + JSON + + google-gsongoogle-gson 層之間解耦方案:工廠設(shè)計(jì)模式工廠設(shè)計(jì)模式難點(diǎn)分析 通用的分頁(yè)解決方案 帶查詢條件的分頁(yè) 使用 Filter + ThreadLocal 解決事務(wù)實(shí)體類設(shè)計(jì)數(shù)據(jù)表設(shè)計(jì)數(shù)據(jù)表設(shè)計(jì)accountuserinfobooktradeitemtrade搭建環(huán)境 加入 C3P0 數(shù)據(jù)源 加入 dbutils 工具類 加入 JSTL 其它:使用隨時(shí)加入搭建環(huán)境 加入 C3P0: 加入 jar 包 加入配置文件 編輯配置文件Dao 層設(shè)計(jì)Dao 接口, 定義 Dao 的基本操作, 由 B

3、aseDao 提供實(shí)現(xiàn). 使用 DBUtils 工具類提供 Dao 接口的具體實(shí)現(xiàn)BookDAO 接口, 用于定義操作 Book 實(shí)體類的基本方法使用 BaseDao 中的方法實(shí)現(xiàn) BookDaoDao 接口-1Dao 接口-2Dao 接口-3首頁(yè)截圖:沒有沒有 “ “首頁(yè)首頁(yè)”, “”, “上一頁(yè)上一頁(yè)” ” 超鏈接超鏈接中間頁(yè)截圖末頁(yè)截圖:沒有沒有 “ “下一下一頁(yè)頁(yè)”, “”, “末頁(yè)末頁(yè)” ” 超鏈接超鏈接封裝翻頁(yè)信息的 Page 類封裝翻頁(yè)信息的 Page 類上一頁(yè), 下一頁(yè)相關(guān)設(shè)置總記錄數(shù)設(shè)置總記錄數(shù)總記錄數(shù):可以用來計(jì)算總頁(yè)數(shù)總記錄數(shù):可以用來計(jì)算總頁(yè)數(shù)每頁(yè)多少條記錄每頁(yè)多少條記

4、錄構(gòu)造器:初始化構(gòu)造器:初始化 pageNopageNo獲取總頁(yè)碼數(shù)獲取總頁(yè)碼數(shù), , 需通過需通過 totalItemNumbertotalItemNumber 和和 pageSizepageSize 計(jì)算后返回計(jì)算后返回本本頁(yè)面需要顯示的頁(yè)面需要顯示的 ListList當(dāng)前頁(yè)的頁(yè)碼當(dāng)前頁(yè)的頁(yè)碼設(shè)置當(dāng)前頁(yè)需要顯示的設(shè)置當(dāng)前頁(yè)需要顯示的 List List 對(duì)象對(duì)象返回當(dāng)前頁(yè)的頁(yè)碼返回當(dāng)前頁(yè)的頁(yè)碼, , 需通過需通過 getTotalPageNumbergetTotalPageNumber() () 進(jìn)行校進(jìn)行校驗(yàn)驗(yàn)封裝查詢條件的 CriteriaBook 類價(jià)格區(qū)間的最大值:默認(rèn)為價(jià)格區(qū)間的

5、最大值:默認(rèn)為 Integer.MAX_VALUEInteger.MAX_VALUE當(dāng)前頁(yè)的頁(yè)碼當(dāng)前頁(yè)的頁(yè)碼價(jià)格區(qū)間的最小值,默認(rèn)為價(jià)格區(qū)間的最小值,默認(rèn)為 0 0BookDao 接口-1BookDao 接口-2AccountDaoTradeDAOTradeItemDAOUserDAO功能實(shí)現(xiàn):查看圖書信息1.獲取請(qǐng)求參數(shù): maxPrie, minPrice, pageNo2.把請(qǐng)求參數(shù)封裝為 CriteriaBook 對(duì)象翻頁(yè)過程中保存查詢條件/bookstore/getBooks.do?pageNo=3&minPrice=50&maxPrice=60下一頁(yè)JS 操作使用 JS 完成提示”

6、輸入的頁(yè)面不合法”查看圖書詳細(xì)信息加入購(gòu)物車加入購(gòu)物車的流程購(gòu)物車保存在 request 中 ? session 中 ?購(gòu)物車的數(shù)據(jù)結(jié)構(gòu)BookShoppingCartItemShoppingCartItem 的集合:List ? Map ? Set ?ShoppingCart & ShoppingCartItem查看購(gòu)物車刪除購(gòu)物項(xiàng)清空購(gòu)物車?yán)^續(xù)購(gòu)物超鏈接Ajax 修改購(gòu)物車商品數(shù)量Ajax 修改購(gòu)物車商品數(shù)量的校驗(yàn)結(jié)賬操作-1結(jié)賬操作-2:校驗(yàn)結(jié)賬操作-3:流程校驗(yàn)業(yè)務(wù)操作關(guān)于 ThreadLocal通過 ThreadLocal.set() 將對(duì)象的引用保存到各線程的自己的一線程的自己的一

7、個(gè)個(gè) map map 中中,每個(gè)線程都有這樣一個(gè)map,執(zhí)行ThreadLocal.get()時(shí),各線程從自己的map中取出放進(jìn)去的對(duì)象,因此取出來的是各自自己線程中的對(duì)象,ThreadLocalThreadLocal 實(shí)例實(shí)例是作為是作為mapmap的的keykey來使用的來使用的。一般情況下,通過一般情況下,通過ThreadLocal.setThreadLocal.set() () 到線程中的對(duì)象是該線程自己使到線程中的對(duì)象是該線程自己使用的對(duì)象,其他線程是不需要訪問用的對(duì)象,其他線程是不需要訪問的的ThreadLocal 不是用來解決共享對(duì)象的多線程訪問問題的:如果ThreadLocal

8、.set() 進(jìn)去的東西本來就是多個(gè)線程共享的同一個(gè)對(duì)象,那么多個(gè)線程的 ThreadLocal.get() 取得的還是這個(gè)共享對(duì)象本身,還是有并發(fā)訪問問題。ThreadLocal的應(yīng)用場(chǎng)合:按線程多實(shí)例(每個(gè)線程對(duì)應(yīng)一個(gè)實(shí)例)的對(duì)象的訪問。關(guān)于 ThreadLocalThreadLocalMapThreadLocalMapThreadLocalMap線程線程-1-1線程線程-2-2線程線程-3-3ThreadLocali1i3i2i1i2i3ThreadLocal + Filter 處理事務(wù)ServletServiceDAOTransactionFilter1.獲取連接和 當(dāng)前線程綁定2.開

9、啟事務(wù)1.從當(dāng)前線程中獲取連接1.提交或回滾事務(wù)2.關(guān)閉連接請(qǐng)求請(qǐng)求響應(yīng)響應(yīng)查看交易記錄username - User - Set trades - Set 實(shí)體類設(shè)計(jì)數(shù)據(jù)表設(shè)計(jì)accountuserinfobooktradeitemtrade1. 新建一個(gè) users.jsp, 該頁(yè)面中有一個(gè)表單,表單中只有一個(gè)字段 username,提交到 UserServlet2. 在 Servlet 中:1. 獲取 username 請(qǐng)求參數(shù)的值2. 調(diào)用 UserService 的 getUser(username) 獲取User 對(duì)象:要求 trades 是被裝配好的,而且每一個(gè) Trrade 對(duì)象的 items 也被裝配好3. 具體:1. 調(diào)用 UserDAO 的方法獲取 User 對(duì)象2. 調(diào)用 TradeDAO 的方法獲取 Trade 的集合,把其裝配為 User 的屬性3. 調(diào)用 TradeItemDAO 的方法獲取每一個(gè) Trade 中的

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論