網(wǎng)上書店項目的架構(gòu)和設(shè)計(ppt 45頁).ppt_第1頁
網(wǎng)上書店項目的架構(gòu)和設(shè)計(ppt 45頁).ppt_第2頁
網(wǎng)上書店項目的架構(gòu)和設(shè)計(ppt 45頁).ppt_第3頁
網(wǎng)上書店項目的架構(gòu)和設(shè)計(ppt 45頁).ppt_第4頁
網(wǎng)上書店項目的架構(gòu)和設(shè)計(ppt 45頁).ppt_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第4章 網(wǎng)上書店項目的架構(gòu)和設(shè)計,網(wǎng)上書店的架構(gòu),搭建項目框架,注冊、登錄和注銷功能開發(fā),4.1 網(wǎng)上書店的架構(gòu),4.1.1 功能需求和展示 1主界面 網(wǎng)上書店購書界面如圖4.1所示。,4.1.1 功能需求和展示,2功能模塊 網(wǎng)上書店是一個典型的基于Web網(wǎng)站的Java EE軟件系統(tǒng),集成了諸多的功能模塊,主要包括: (1)顯示圖書分類。 (2)用戶可以根據(jù)分類瀏覽某一類圖書列表。 (3)用戶可以查看具體某一本書的簡介。 (4)在圖書瀏覽頁只要單擊【購買】按鈕,就可把選定的圖書加入購物車中。 (5)用戶可以隨時單擊 ,查看車中已購圖書的信息。 (6)已登錄的用戶可以單擊【結(jié)賬】按鈕下訂單。 (

2、7)使用需先注冊,在注冊頁填寫個人信息,確認有效后成為新用戶。 (8)用戶在登錄頁填寫用戶名和密碼,確認正確后才可結(jié)賬。,4.1.1 功能需求和展示,各功能模塊的劃分如圖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文件,把St

3、ruts 2的類的生成交給Spring完成: struts.objectFactory=spring;,4.1.2 業(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 getSessionF

4、actory() return sessionFactory; public void setSessionFactory(SessionFactory sessionFactory) this.sessionFactory=sessionFactory; public Session getSession() Session session=sessionFactory.openSession(); return session; ,4.1.2 業(yè)務(wù)層的引入:多框架整合(含Service層),IUserDAO接口代碼如下: package org.easybooks.bookstore.da

5、o; import org.easybooks.bookstore.vo.User; public interface IUserDAO public User 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,包中安置一個IUserService接口。 IUserService接口代碼如下: pack

6、age org.easybooks.bookstore.service; import org.easybooks.bookstore.vo.User; public interface IUserService public User validateUser(String username,String password); public User registerUser(User user);/實現(xiàn)(注冊登錄)的Service UserService類代碼所示。,4.1.2 業(yè)務(wù)層的引入:多框架整合(含Service層),7開發(fā)Action控制塊 LoginAction.java代碼所

7、示。 struts.xml文件內(nèi)容如下: /error.jsp /welcome.jsp /error.jsp /welcome.jsp ,4.1.2 業(yè)務(wù)層的引入:多框架整合(含Service層),8注冊組件 applicationContext.xml文件代碼所示。 9編寫JSP文件 login.jsp的代碼如下: 登錄頁面 用戶登錄 姓名: 密碼: 注冊 ,4.1.2 業(yè)務(wù)層的引入:多框架整合(含Service層),register.jsp的代碼如下: 注冊頁面 用戶注冊 用戶名: 密碼: ,4.1.2 業(yè)務(wù)層的引入:多框架整合(含Service層),welcome.jsp的代碼如下:

8、成功頁面 ,您好!歡迎光臨叮當書店。 error.jsp的代碼如下: 失敗頁面 登錄失??! ,4.1.2 業(yè)務(wù)層的引入:多框架整合(含Service層),10部署運行 部署項目、啟動Tomcat服務(wù)器。在瀏覽器中輸入http:/localhost:8080/jsp_struts2_ spring_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所示,用鼠標

9、單擊頁面上的“注冊”鏈接,進入如圖4.6所示的注冊頁面。,4.1.2 業(yè)務(wù)層的引入:多框架整合(含Service層),此時控制器會調(diào)用IUserService接口里的“注冊登錄”服務(wù)(registerUser()方法),該服務(wù)又先后調(diào)用DAO層的saveUser()方法和validateUser()方法,實現(xiàn)新用戶注冊后立即用新賬號登錄的功能,本例將跳轉(zhuǎn)到如圖4.7所示的頁面。,4.1.3 系統(tǒng)架構(gòu):原理與實施,1分層模型 總結(jié)前述的知識,輕量級的Java EE系統(tǒng)最適合采用分層的方式架構(gòu),下面給出其分層模型,如圖4.8所示。,4.1.3 系統(tǒng)架構(gòu):原理與實施,2實施方案 這里將討論一個使用3

10、種開源框架的解決方案,如圖4.9所示。,4.2 搭建項目框架,1創(chuàng)建Web項目 在MyEclipse中創(chuàng)建一個新的Web Project,命名為bookstore。 2創(chuàng)建源代碼包 在項目src目錄下創(chuàng)建如圖4.10所示的包。,4.2 搭建項目框架,3創(chuàng)建數(shù)據(jù)庫 網(wǎng)上書店有以下5個實體:用戶、圖書分類、圖書、訂單、訂單項,因此,本系統(tǒng)的數(shù)據(jù)庫設(shè)計如圖4.11所示。,4.2 搭建項目框架,根據(jù)圖4.11所示的設(shè)計模型,用CASE工具生成SQL語句,代碼所示。 最終生成的表如圖4.12所示,每個實體對應(yīng)一個表,總共5個表。,4.2 搭建項目框架,向catalog表輸入記錄的SQL語句: INSER

11、T INTO catalog VALUES(1, C語言程序設(shè)計); 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 VALUES(1, 4, ASP.NET 3.5實用教程, 38, ASP.NET3.5.jpg); INSERT INTO book VALUES(2, 1, C#實用教程, 43, CSharp.jpg); INSERT

12、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ā)實踐, 45, Flex4.jpg); INSERT INTO book VALUES(6, 2, Java EE基礎(chǔ)實用教程, 35, JavaEEBasic.jpg); INSERT INTO book VALUES(7, 2, Java EE實用教程, 39, JavaEE.jpg); INSERT INTO book VALUE

13、S(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, Oracle.jpg); INSERT INTO book VALUES(12, 4, PHP實用教程, 35, PHP.jpg); INSERT INTO book VALUES(13, 3, S

14、QL 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框架。 (4)Struts 2與Spring集成。 具體操作同4.1.2小節(jié),在第(2)步添加了Hibernate后,要一并將bookstore中的5個表全都用“反向工程”法生成持久化對象及映射文件,生成項全部置于先前創(chuàng)建的org.

15、easybooks.bookstore.vo包中,如圖4.13所示。,4.3 注冊、登錄和注銷功能開發(fā),4.3.1 表示層頁面設(shè)計 1頁面布局 在WebRoot下建立文件夾css,在其中創(chuàng)建bookstore.css文件。 編寫CSS代碼所示。,4.3.1 表示層頁面設(shè)計,2知識點:CSS樣式表 例如,在CSS定義了a標簽的樣式如下: a font-family: 宋體; color: #000000; 那么在頁面中若出現(xiàn): 鏈接 而類樣式則不同,定義一個樣式的類格式如下: .name 該類樣式的屬性 在頁面標簽中加入“class=name”屬性,該標簽就可以使用CSS中.name定義的樣式。

16、例如: ,4.3.1 表示層頁面設(shè)計,3設(shè)計主界面 主頁面的框架由index.jsp實現(xiàn),代碼所示。 4分塊子頁面設(shè)計 (1)網(wǎng)頁頭設(shè)計。 首先在主界面的上方是網(wǎng)頁頭(對應(yīng)head.jsp),代碼所示。 (2)登錄頁設(shè)計。 登錄頁對應(yīng)login.jsp,代碼所示。 (3)注冊頁設(shè)計。 注冊頁對應(yīng)register.jsp,代碼所示。 (4)網(wǎng)頁尾設(shè)計。 foot.jsp為整個頁面的尾部,其代碼非常簡單,一般是版權(quán)說明等內(nèi)容,代碼所示。,4.3.1 表示層頁面設(shè)計,5效果展示 (1)主界面。 在瀏覽器地址欄輸入http:/localhost:8080/bookstore/index.jsp并回車,

17、顯示主界面如圖4.14所示。,4.3.1 表示層頁面設(shè)計,(2)登錄頁。 單擊“登錄”鏈接,如圖4.15所示,進入登錄頁。,4.3.1 表示層頁面設(shè)計,(3)注冊頁。 單擊“注冊”鏈接,進入注冊頁,頁面上出現(xiàn)如圖4.16所示的供用戶填寫個人信息的表單。,4.3.2 持久層接口設(shè)計,DAO層所涉及的類、接口如圖4.17所示。,4.3.2 持久層接口設(shè)計,在org.easybooks.bookstore.dao包中創(chuàng)建IUserDAO.java,代碼如下: package org.easybooks.bookstore.dao; import org.easybooks.bookstore.vo.

18、User; public interface IUserDAO /用戶注冊時,保存注冊信息 public void saveUser(User user); /用戶登錄時,驗證用戶信息 public User validateUser(String username,String password); ,4.3.2 持久層接口設(shè)計,創(chuàng)建BaseDAO.java,代碼如下: package org.easybooks.bookstore.dao; import org.hibernate.SessionFactory; import org.hibernate.Session; public c

19、lass 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 sessi

20、on; 在org.easybooks.bookstore.dao.impl包中創(chuàng)建UserDAO.java,代碼所示。,4.3.3 業(yè)務(wù)及控制邏輯設(shè)計,1業(yè)務(wù)層開發(fā) 業(yè)務(wù)層(Service層)用于處理各種業(yè)務(wù)邏輯,主要的類和接口是IUserService、UserService,如圖4.18所示。,4.3.3 業(yè)務(wù)及控制邏輯設(shè)計,在org.easybooks.bookstore.service包中創(chuàng)建IUserService. java,代碼如下: package org.easybooks.bookstore.service; import org.easybooks.bookstore.v

21、o.User; public interface IUserService /保存注冊信息 public void saveUser(User user); /驗證用戶信息 public User validateUser(String username,String password); ,4.3.3 業(yè)務(wù)及控制邏輯設(shè)計,在org.easybooks.bookstore.service.impl包中創(chuàng)建UserService.java,代碼如下: package org.easybooks.bookstore.service.impl; import org.easybooks.bookst

22、ore.dao.IUserDAO; import org.easybooks.bookstore.service.IUserService; import org.easybooks.bookstore.vo.User; public class UserService implements IUserService private IUserDAO userDAO; /保存注冊信息 public void saveUser(User user) this.userDAO.saveUser(user); /驗證用戶信息 public User validateUser(String usern

23、ame,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è)計,2控制模塊開發(fā) 系統(tǒng)的注冊、登錄和注銷功能的控制模塊由UserAction類承擔,該類含有3個方法,如圖4.19所示,register()方法用于用戶注冊,execute()方法用于用戶登錄,logout()方法用于用戶注銷。這些方

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論