版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 智能農(nóng)業(yè)的土地利用規(guī)劃
- 四川電影電視學(xué)院《動(dòng)畫史與經(jīng)典作品賞析》2021-2022學(xué)年第一學(xué)期期末試卷
- 石河子大學(xué)《藥用植物學(xué)》2021-2022學(xué)年第一學(xué)期期末試卷
- 石河子大學(xué)《食品技術(shù)原理》2022-2023學(xué)年第一學(xué)期期末試卷
- 石河子大學(xué)《結(jié)構(gòu)力學(xué)二》2021-2022學(xué)年第一學(xué)期期末試卷
- 石河子大學(xué)《家庭社會(huì)工作》2023-2024學(xué)年第一學(xué)期期末試卷
- 石河子大學(xué)《房屋建筑學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 沈陽(yáng)理工大學(xué)《自動(dòng)控制原理》2023-2024學(xué)年期末試卷
- 沈陽(yáng)理工大學(xué)《商業(yè)攝影》2023-2024學(xué)年第一學(xué)期期末試卷
- 沈陽(yáng)理工大學(xué)《建筑實(shí)務(wù)》2021-2022學(xué)年第一學(xué)期期末試卷
- 《線性代數(shù)》教案完整版教案整本書全書電子教案
- 旅游管理信息系統(tǒng)教材課件匯總完整版ppt全套課件最全教學(xué)教程整本書電子教案全書教案合集最新課件匯編
- 三年級(jí)下冊(cè)美術(shù)課件-第4課 瓜果飄香丨贛美版
- 綠電制綠氫及其綜合利用技術(shù)PPT
- JJG646-2006移液器檢定規(guī)程-(高清現(xiàn)行)
- 【課題研究】-《普通高中英語(yǔ)閱讀課文教學(xué)研究》結(jié)題報(bào)告
- 嚴(yán)重精神障礙管理工作規(guī)范課件(PPT 39頁(yè))
- 羊常見普通病類型和防治
- 梁板柱同時(shí)澆筑及方案
- 溝槽開挖支護(hù)專項(xiàng)施工方案(46頁(yè))
- 2021-2022學(xué)年部編版語(yǔ)文八年級(jí)下冊(cè)第二單元主題綜合實(shí)踐作業(yè)——生活中的科學(xué)
評(píng)論
0/150
提交評(píng)論