




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第4章 網(wǎng)上書店工程的架構(gòu)和設(shè)計(jì)4.1網(wǎng)上書店的架構(gòu)4.24.3搭建工程框架注冊、登錄和注銷功能開發(fā)4.1 網(wǎng)上書店的架構(gòu)4.1.1 功能需求和展現(xiàn)1主界面網(wǎng)上書店購書界面如圖4.1所示。4.1.1 功能需求和展現(xiàn)2功能模塊網(wǎng)上書店是一個(gè)典型的基于Web網(wǎng)站的Java EE軟件系統(tǒng),集成了諸多的功能模塊,主要包括:1顯示圖書分類。2用戶可以根據(jù)分類閱讀某一類圖書列表。3用戶可以查看詳細(xì)某一本書的簡介。4在圖書閱讀頁只需單擊【購買】按鈕,就可把選定的圖書參與購物車中。5用戶可以隨時(shí)單擊 ,查看車中已購圖書的信息。6已登錄的用戶可以單擊【結(jié)賬】按鈕下訂單。7運(yùn)用需先注冊,在注冊頁填寫個(gè)人信息,確認(rèn)
2、有效后成為新用戶。8用戶在登錄頁填寫用戶名和密碼,確認(rèn)正確后才可結(jié)賬。4.1.1 功能需求和展現(xiàn)各功能模塊的劃分如圖4.2所示。4.1.2 業(yè)務(wù)層的引入:多框架整合含Service層1添加Spring中心容器2添加Hibernate并耐久化user表3添加Struts 2框架4Struts 2與Spring集成 添加Spring支持包。 配置web.xml文件。翻開web.xml文件,添加Spring的配置,代碼所示。 創(chuàng)建perties。在src目錄下創(chuàng)建perties文件,把Struts 2的類的生成交給Spring完成:struts.objectFactory=spring;4.1.2
3、業(yè)務(wù)層的引入:多框架整合含Service層5開發(fā)DAO層BaseDAO代碼如下:package org.easybooks.bookstore.dao;import org.hibernate.SessionFactory;import org.hibernate.Session;public class BaseDAO private SessionFactory sessionFactory;public SessionFactory getSessionFactory()return sessionFactory;public void setSessionFactory(Session
4、Factory sessionFactory)this.sessionFactory=sessionFactory;public Session getSession()Session session=sessionFactory.openSession();return session;4.1.2 業(yè)務(wù)層的引入:多框架整合含Service層IUserDAO接口代碼如下:package org.easybooks.bookstore.dao;import org.easybooks.bookstore.vo.User;public interface IUserDAO public User
5、validateUser(String username,String password);public void saveUser(User user);UserDAO類代碼所示。4.1.2 業(yè)務(wù)層的引入:多框架整合含Service層6開發(fā)業(yè)務(wù)層在src目錄下建立包org.easybooks.bookstore.service,包中安頓一個(gè)IUserService接口。IUserService接口代碼如下:package org.easybooks.bookstore.service;import org.easybooks.bookstore.vo.User;public interfac
6、e IUserService public User validateUser(String username,String password);public User registerUser(User user);/實(shí)現(xiàn)注冊登錄的ServiceUserService類代碼所示。4.1.2 業(yè)務(wù)層的引入:多框架整合含Service層7開發(fā)Action控制塊LoginAction.java代碼所示。struts.xml文件內(nèi)容如下:/error.jsp/welcome.jsp/error.jsp/welcome.jsp4.1.2 業(yè)務(wù)層的引入:多框架整合含Service層8注冊組件applic
7、ationContext.xml文件代碼所示。9編寫JSP文件login.jsp的代碼如下:登錄頁面用戶登錄姓名:密碼: 注冊4.1.2 業(yè)務(wù)層的引入:多框架整合含Service層register.jsp的代碼如下:注冊頁面用戶注冊用戶名:密碼: 4.1.2 業(yè)務(wù)層的引入:多框架整合含Service層welcome.jsp的代碼如下:勝利頁面,您好!歡迎光臨叮當(dāng)書店。error.jsp的代碼如下:失敗頁面登錄失??!4.1.2 業(yè)務(wù)層的引入:多框架整合含Service層10部署運(yùn)轉(zhuǎn)部署工程、啟動(dòng)Tomcat效力器。在閱讀器中輸入httplocalhost:8080/jsp_struts2_ sp
8、ring_service_dao_hibernate/并回車,出現(xiàn)如圖4.3所示的登錄首頁。4.1.2 業(yè)務(wù)層的引入:多框架整合含Service層單擊【登錄】按鈕提交表單,跳轉(zhuǎn)到如圖4.4所示的勝利頁面。4.1.2 業(yè)務(wù)層的引入:多框架整合含Service層后退到登錄首頁,如圖4.5所示,用鼠標(biāo)單擊頁面上的“注冊鏈接,進(jìn)入如圖4.6所示的注冊頁面。4.1.2 業(yè)務(wù)層的引入:多框架整合含Service層此時(shí)控制器會(huì)調(diào)用IUserService接口里的“注冊登錄效力registerUser()方法,該效力又先后調(diào)用DAO層的saveUser()方法和validateUser()方法,實(shí)現(xiàn)新用戶注冊
9、后立刻用新賬號(hào)登錄的功能,本例將跳轉(zhuǎn)到如圖4.7所示的頁面。4.1.3 系統(tǒng)架構(gòu):原理與實(shí)施1分層模型總結(jié)前述的知識(shí),輕量級(jí)的Java EE系統(tǒng)最適宜采用分層的方式架構(gòu),下面給出其分層模型,如圖4.8所示。4.1.3 系統(tǒng)架構(gòu):原理與實(shí)施2實(shí)施方案這里將討論一個(gè)運(yùn)用3種開源框架的處理方案,如圖4.9所示。4.2 搭建工程框架1創(chuàng)建Web工程在MyEclipse中創(chuàng)建一個(gè)新的Web Project,命名為bookstore。2創(chuàng)建源代碼包在工程src目錄下創(chuàng)建如圖4.10所示的包。4.2 搭建工程框架3創(chuàng)建數(shù)據(jù)庫網(wǎng)上書店有以下5個(gè)實(shí)體:用戶、圖書分類、圖書、訂單、訂單項(xiàng),因此,本系統(tǒng)的數(shù)據(jù)庫設(shè)計(jì)
10、如圖4.11所示。4.2 搭建工程框架根據(jù)圖4.11所示的設(shè)計(jì)模型,用CASE工具生成SQL語句,代碼所示。最終生成的表如圖4.12所示,每個(gè)實(shí)體對應(yīng)一個(gè)表,總共5個(gè)表。4.2 搭建工程框架向catalog表輸入記錄的SQL語句:INSERT INTO catalog VALUES(1, C言語程序設(shè)計(jì));INSERT INTO catalog VALUES(2, Java開發(fā));INSERT INTO catalog VALUES(3, 數(shù)據(jù)庫);INSERT INTO catalog VALUES(4, 網(wǎng)頁編程);4.2 搭建工程框架向book表輸入記錄:INSERT INTO book
11、 VALUES(1, 4, ASP.NET 3.5適用教程, 38, ASP.NET3.5.jpg);INSERT INTO book VALUES(2, 1, C#適用教程, 43, CSharp.jpg);INSERT INTO book VALUES(3, 1, C適用教程, 36, C.jpg);INSERT INTO book VALUES(4, 1, C+適用教程, 40, C+.jpg);INSERT INTO book VALUES(5, 4, Flex 4開發(fā)實(shí)際, 45, Flex4.jpg);INSERT INTO book VALUES(6, 2, Java EE根底適
12、用教程, 35, JavaEEBasic.jpg);INSERT INTO book VALUES(7, 2, Java EE適用教程, 39, JavaEE.jpg);INSERT INTO book VALUES(8, 2, Java適用教程第2版, 50, Java.jpg);INSERT INTO book VALUES(9, 4, JSP編程教程, 30, JSP.jpg);INSERT INTO book VALUES(10, 3, MySQL適用教程, 37, MySQL.jpg);INSERT INTO book VALUES(11, 3, Oracle適用教程第3版, 29,
13、 Oracle.jpg);INSERT INTO book VALUES(12, 4, PHP適用教程, 35, PHP.jpg);INSERT INTO book VALUES(13, 3, SQL Server適用教程第3版, 25, SQL Server.jpg);INSERT INTO book VALUES(14, 1, Visual C+教程第2版, 25, VC+.jpg);4.2 搭建工程框架4添加SSH2多框架要留意添加的次序:1添加Spring中心容器。2添加Hibernate框架。3添加Struts 2框架。4Struts 2與Spring集成。詳細(xì)操作同4.1.2小節(jié),
14、在第2步添加了Hibernate后,要一并將bookstore中的5個(gè)表全都用“反向工程法生成耐久化對象及映射文件,生成項(xiàng)全部置于先前創(chuàng)建的org.easybooks.bookstore.vo包中,如圖4.13所示。4.3 注冊、登錄和注銷功能開發(fā)4.3.1 表示層頁面設(shè)計(jì)1頁面規(guī)劃在WebRoot下建立文件夾css,在其中創(chuàng)建bookstore.css文件。編寫CSS代碼所示。4.3.1 表示層頁面設(shè)計(jì)2知識(shí)點(diǎn):CSS款式表例如,在CSS定義了a標(biāo)簽的款式如下:a font-family: 宋體;color: #000000;那么在頁面中假設(shè)出現(xiàn):鏈接而類款式那么不同,定義一個(gè)款式的類格式如
15、下:.name該類款式的屬性在頁面標(biāo)簽中參與“class=name屬性,該標(biāo)簽就可以運(yùn)用CSS中.name定義的款式。例如:4.3.1 表示層頁面設(shè)計(jì)3設(shè)計(jì)主界面主頁面的框架由index.jsp實(shí)現(xiàn),代碼所示。4分塊子頁面設(shè)計(jì)1網(wǎng)頁頭設(shè)計(jì)。首先在主界面的上方是網(wǎng)頁頭對應(yīng)head.jsp,代碼所示。2登錄頁設(shè)計(jì)。登錄頁對應(yīng)login.jsp,代碼所示。3注冊頁設(shè)計(jì)。注冊頁對應(yīng)register.jsp,代碼所示。4網(wǎng)頁尾設(shè)計(jì)。foot.jsp為整個(gè)頁面的尾部,其代碼非常簡單,普通是版權(quán)闡明等內(nèi)容,代碼所示。4.3.1 表示層頁面設(shè)計(jì)5效果展現(xiàn)1主界面。在閱讀器地址欄輸入httplocalhost:
16、8080/bookstore/index.jsp并回車,顯示主界面如圖4.14所示。4.3.1 表示層頁面設(shè)計(jì)2登錄頁。單擊“登錄鏈接,如圖4.15所示,進(jìn)入登錄頁。4.3.1 表示層頁面設(shè)計(jì)3注冊頁。單擊“注冊鏈接,進(jìn)入注冊頁,頁面上出現(xiàn)如圖4.16所示的供用戶填寫個(gè)人信息的表單。4.3.2 耐久層接口設(shè)計(jì)DAO層所涉及的類、接口如圖4.17所示。4.3.2 耐久層接口設(shè)計(jì)在org.easybooks.bookstore.dao包中創(chuàng)建IUserDAO.java,代碼如下:package org.easybooks.bookstore.dao;import org.easybooks.boo
17、kstore.vo.User;public interface IUserDAO /用戶注冊時(shí),保管注冊信息public void saveUser(User user);/用戶登錄時(shí),驗(yàn)證用戶信息public User validateUser(String username,String password);4.3.2 耐久層接口設(shè)計(jì)創(chuàng)建BaseDAO.java,代碼如下:package org.easybooks.bookstore.dao;import org.hibernate.SessionFactory;import org.hibernate.Session;public cl
18、ass BaseDAO private SessionFactory sessionFactory;public SessionFactory getSessionFactory()return sessionFactory;public void setSessionFactory(SessionFactory sessionFactory)this.sessionFactory=sessionFactory;public Session getSession()Session session=sessionFactory.openSession();return session;在org.
19、easybooks.bookstore.dao.impl包中創(chuàng)建UserDAO.java,代碼所示。4.3.3 業(yè)務(wù)及控制邏輯設(shè)計(jì)1業(yè)務(wù)層開發(fā)業(yè)務(wù)層Service層用于處置各種業(yè)務(wù)邏輯,主要的類和接口是IUserService、UserService,如圖4.18所示。4.3.3 業(yè)務(wù)及控制邏輯設(shè)計(jì)在org.easybooks.bookstore.service包中創(chuàng)建IUserService. java,代碼如下:package org.easybooks.bookstore.service;import org.easybooks.bookstore.vo.User;public inte
20、rface IUserService /保管注冊信息public void saveUser(User user);/驗(yàn)證用戶信息public User validateUser(String username,String password);4.3.3 業(yè)務(wù)及控制邏輯設(shè)計(jì)在org.easybooks.bookstore.service.impl包中創(chuàng)建UserService.java,代碼如下:package org.easybooks.bookstore.service.impl;import org.easybooks.bookstore.dao.IUserDAO;import org
21、.easybooks.bookstore.service.IUserService;import org.easybooks.bookstore.vo.User;public class UserService implements IUserServiceprivate IUserDAO userDAO;/保管注冊信息public void saveUser(User user)this.userDAO.saveUser(user);/驗(yàn)證用戶信息public User validateUser(String username,String password)return userDAO.validateUser(username, password);public IUserDAO getUserDAO()return userDAO;public void setUserDAO(IUserDAO userDAO)this.userDAO=userDAO;4.3.3 業(yè)務(wù)及控制邏輯設(shè)計(jì)2控制模塊開發(fā)系統(tǒng)的注冊、登錄和注銷功能的控制模塊由UserAction類承當(dāng),該類含有3個(gè)方法,如圖4.19所示,register()方法用于用戶注冊,execute()方法用于用戶登錄,logout()方法用于用戶注銷。這些方法的實(shí)現(xiàn)依賴于
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年湖北省廣播電視局下屬事業(yè)單位真題
- 2024年河北省中醫(yī)藥管理局下屬事業(yè)單位真題
- 2024年佛山市南海農(nóng)商銀行招聘筆試真題
- 未來市場與企業(yè)戰(zhàn)略風(fēng)險(xiǎn)管控試題及答案
- 網(wǎng)絡(luò)管理員考試問題解答試題及答案
- 未來公司戰(zhàn)略與心理安全風(fēng)險(xiǎn)的關(guān)系研究試題及答案
- 2025屆黑龍江北安市八下數(shù)學(xué)期末學(xué)業(yè)水平測試試題含解析
- 系統(tǒng)網(wǎng)絡(luò)分析技巧試題及答案
- 山東省臨沂2025年數(shù)學(xué)八下期末質(zhì)量跟蹤監(jiān)視試題含解析
- 2025年軟件設(shè)計(jì)師考試復(fù)習(xí)試題及答案分類
- 食堂庫存物的盤點(diǎn)表
- 單位閑置房屋盤活方案范本
- 美妙的高等數(shù)學(xué)(上)智慧樹知到課后章節(jié)答案2023年下江西師范大學(xué)
- 新員工入職報(bào)到通知書
- 2018年版電工-國家職業(yè)技能標(biāo)準(zhǔn)
- 淺談如何做好財(cái)務(wù)安全工作
- 電動(dòng)車分期付款的合同范本
- 高中英語-Live form the Louvre教學(xué)設(shè)計(jì)學(xué)情分析教材分析課后反思
- 2023北京高考英語答題卡ok
- 醫(yī)務(wù)科運(yùn)用PDCA循環(huán)提高門診醫(yī)生準(zhǔn)時(shí)出診率PDCA成果匯報(bào)
- 動(dòng)脈采血操作考核標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論