《第4章網(wǎng)上書店項(xiàng)目的架構(gòu)和設(shè)計(jì)》由會(huì)員分享,可在線閱讀,更多相關(guān)《第4章網(wǎng)上書店項(xiàng)目的架構(gòu)和設(shè)計(jì)(44頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級(jí),第三級(jí),第四級(jí),第五級(jí),*,*,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級(jí),第三級(jí),第四級(jí),第五級(jí),第,4,章 網(wǎng),上,上書店項(xiàng),目,目的架構(gòu),和,和設(shè)計(jì),4.1,網(wǎng)上書店,的,的架構(gòu),4.2,4.3,搭建項(xiàng)目,框,框架,注冊(cè)、登,錄,錄和注銷,功,功能開發(fā),4.1,網(wǎng)上書店,的,的架構(gòu),4.1.1,功能需求,和,和展示,1,主界面,網(wǎng)上書店,購(gòu),購(gòu)書界面,如,如圖,4.1,所示。,4.1.1,功能需求,和,和展示,2,功能模,塊,塊,網(wǎng)上書店,是,是一個(gè)典,型,型的基于,Web,網(wǎng)站的,JavaEE,軟件系統(tǒng),,,,
2、集成了,諸,諸多的功,能,能模塊,,主,主要包括,:,:,(,1,)顯示圖,書,書分類。,(,2,)用戶可,以,以根據(jù)分,類,類瀏覽某,一,一類圖書,列,列表。,(,3,)用戶可,以,以查看具,體,體某一本,書,書的簡(jiǎn)介,。,。,(,4,)在圖書,瀏,瀏覽頁只,要,要單擊,【,購(gòu)買,】,按鈕,就,可,可把選定,的,的圖書加,入,入購(gòu)物車,中,中。,(,5,)用戶可,以,以隨時(shí)單,擊,擊,查看車,中,中已購(gòu)圖,書,書的信息,。,。,(,6,)已登錄,的,的用戶可,以,以單擊,【,結(jié)賬,】,按鈕下訂,單,單。,(,7,)使用需,先,先注冊(cè),,在,在注冊(cè)頁,填,填寫個(gè)人,信,信息,確,認(rèn),認(rèn)有效后,
3、成,成為新用,戶,戶。,(,8,)用戶在,登,登錄頁填,寫,寫用戶名,和,和密碼,,確,確認(rèn)正確,后,后才可結(jié),賬,賬。,4.1.1,功能需求,和,和展示,各功能模,塊,塊的劃分,如,如圖4.2所示。,4.1.2,業(yè)務(wù)層的,引,引入:多,框,框架整合,(,(含,Service,層),1,添加,Spring,核心容器,2,添加,Hibernate,并持久化,user,表,3,添加,Struts 2,框架,4,Struts 2,與,Spring,集成,添加,Spring,支持包。,配置,web.xml,文件。,打開,web.xml,文件,增,加,加,Spring,的配置,代,碼,碼所示。,創(chuàng)建,s
4、truts.properties,。,在,src,目錄下創(chuàng),建,建,struts.properties,文件,把,Struts 2,的類的生,成,成交給,Spring,完成:,struts.objectFactory=spring;,4.1.2,業(yè)務(wù)層的,引,引入:多,框,框架整合,(,(含,Service,層),5,開發(fā),DAO,層,BaseDAO,代碼如下,:,:,packageorg.easybooks.bookstore.dao;,import org.hibernate.SessionFactory;,import org.hibernate.Session;,public clas
5、sBaseDAO,privateSessionFactory sessionFactory;,public SessionFactory getSessionFactory(),return sessionFactory;,public voidsetSessionFactory(SessionFactorysessionFactory),this.sessionFactory=sessionFactory;,public Session getSession(),Sessionsession=sessionFactory.openSession();,return session;,4.1.
6、2,業(yè)務(wù)層的,引,引入:多,框,框架整合,(,(含,Service,層),IUserDAO,接口代碼,如,如下:,packageorg.easybooks.bookstore.dao;,import org.easybooks.bookstore.vo.User;,public interfaceIUserDAO,public UservalidateUser(Stringusername,Stringpassword);,public voidsaveUser(User user);,UserDAO,類代碼所,示,示。,4.1.2,業(yè)務(wù)層的,引,引入:多,框,框架整合,(,(含,Servic
7、e,層),6,開發(fā)業(yè),務(wù),務(wù)層,在,src,目錄下建,立,立包,org.easybooks.bookstore.service,,包中安,置,置一個(gè),IUserService,接口。,IUserService,接口代碼,如,如下:,packageorg.easybooks.bookstore.service;,import org.easybooks.bookstore.vo.User;,public interfaceIUserService,public UservalidateUser(Stringusername,Stringpassword);,public Userregister
8、User(User user);,/,實(shí)現(xiàn)(注,冊(cè),冊(cè)登錄,),)的,Service,UserService,類代碼所,示,示。,4.1.2,業(yè)務(wù)層的,引,引入:多,框,框架整合,(,(含,Service,層),7,開發(fā),Action,控制塊,LoginAction.java,代碼所示,。,。,struts.xml,文件內(nèi)容,如,如下:,/error.jsp,/welcome.jsp,/error.jsp,/welcome.jsp,4.1.2,業(yè)務(wù)層的,引,引入:多,框,框架整合,(,(含,Service,層),8,注冊(cè)組,件,件,applicationContext.xml,文件代碼,所,所
9、示。,9,編寫,JSP,文件,login.jsp,的代碼如下,:,:,登錄頁面,用戶登錄,姓名,:,密碼,:,注冊(cè),4.1.2,業(yè)務(wù)層的引,入,入:多框架,整,整合(含,Service,層),register.jsp,的代碼如下,:,:,注冊(cè)頁面,用戶注冊(cè),用戶名,:,密,碼,:,4.1.2,業(yè)務(wù)層的引,入,入:多框架,整,整合(含,Service,層),welcome.jsp,的代碼如下,:,:,成功頁面,,您好!歡,迎,迎光臨叮當(dāng),書,書店。,error.jsp,的代碼如下,:,:,失敗頁面,登錄失??!,4.1.2,業(yè)務(wù)層的引,入,入:多框架,整,整合(含,Service,層),10,部署
10、運(yùn)行,部署項(xiàng)目、,啟,啟動(dòng),Tomcat,服務(wù)器。在,瀏,瀏覽器中輸,入,入,http:/localhost:8080/jsp_struts2_spring_service_dao_hibernate/,并回車,出,現(xiàn),現(xiàn)如圖,4.3,所示的登錄,首,首頁。,4.1.2,業(yè)務(wù)層的引,入,入:多框架,整,整合(含,Service,層),單擊【登錄,】,】按鈕提交,表,表單,跳轉(zhuǎn),到,到如圖4.4所示的成,功,功頁面。,4.1.2,業(yè)務(wù)層的引,入,入:多框架,整,整合(含,Service,層),后退到登錄,首,首頁,如圖4.5所示,,,,用鼠標(biāo)單,擊,擊頁面上的,“,“注冊(cè)”鏈,接,接,進(jìn)入如,圖
11、,圖4.6所,示,示的注冊(cè)頁,面,面。,4.1.2,業(yè)務(wù)層的引,入,入:多框架,整,整合(含,Service,層),此時(shí)控制器,會(huì),會(huì)調(diào)用IUserService,接,接口里的“,注,注冊(cè)登錄,”,”服務(wù)(registerUser()方法,),),該服務(wù),又,又先后調(diào)用DAO層的saveUser(),方,方法和validateUser()方法,,實(shí),實(shí)現(xiàn)新用戶,注,注冊(cè)后立即,用,用新賬號(hào)登,錄,錄的功能,,本,本例將跳轉(zhuǎn),到,到如圖4.7所示的頁,面,面。,4.1.3,系統(tǒng)架構(gòu):,原,原理與實(shí)施,1,分層模型,總結(jié)前述的,知,知識(shí),輕量,級(jí),級(jí)的,JavaEE,系統(tǒng)最適合,采,采用分層的,方
12、,方式架構(gòu),,下,下面給出其,分,分層模型,,如,如圖,4.8,所示。,4.1.3,系統(tǒng)架構(gòu):,原,原理與實(shí)施,2,實(shí)施方案,這里將討論,一,一個(gè)使用,3,種開源框架,的,的解決方案,,,,如圖,4.9,所示。,4.2,搭建項(xiàng)目框,架,架,1,創(chuàng)建,Web,項(xiàng)目,在,MyEclipse,中創(chuàng)建一個(gè),新,新的,Web Project,,命名為,bookstore,。,2,創(chuàng)建源代,碼,碼包,在項(xiàng)目,src,目錄下創(chuàng)建,如,如圖,4.10,所示的包。,4.2,搭建項(xiàng)目框,架,架,3,創(chuàng)建數(shù)據(jù),庫,庫,網(wǎng)上書店有,以,以下,5,個(gè)實(shí)體:用,戶,戶、圖書分,類,類、圖書、,訂,訂單、訂單,項(xiàng),項(xiàng),因此
13、,,本,本系統(tǒng)的數(shù),據(jù),據(jù)庫設(shè)計(jì)如,圖,圖,4.11,所示。,4.2,搭建項(xiàng)目框,架,架,根據(jù)圖,4.11,所示的設(shè)計(jì),模,模型,用,CASE,工具生成,SQL,語句,代碼,所,所示。,最終生成的,表,表如圖,4.12,所示,每個(gè),實(shí),實(shí)體對(duì)應(yīng)一,個(gè),個(gè)表,總共,5,個(gè)表。,4.2,搭建項(xiàng)目框,架,架,向,catalog,表輸入記錄,的,的,SQL,語句:,INSERT INTO catalogVALUES(1,C,語言程序設(shè),計(jì),計(jì),);,INSERT INTO catalogVALUES(2,Java,開發(fā),);,INSERT INTO catalogVALUES(3,數(shù)據(jù)庫,);,INS
14、ERT INTO catalogVALUES(4,網(wǎng)頁編程,);,4.2,搭建項(xiàng)目框,架,架,向,book,表輸入記錄,:,:,INSERT INTO book VALUES(1,4,ASP.NET 3.5,實(shí)用教程,38,ASP.NET3.5.jpg);,INSERT INTO book VALUES(2,1,C#,實(shí)用教程,43,CSharp.jpg);,INSERT INTO book VALUES(3,1,C,實(shí)用教程,36,C.jpg);,INSERT INTO book VALUES(4,1,C+,實(shí)用教程,40,C+.jpg);,INSERT INTO book VALUES(5
15、,4,Flex4,開發(fā)實(shí)踐,45,Flex4.jpg);,INSERT INTO book VALUES(6,2,JavaEE,基礎(chǔ)實(shí)用教,程,程,35,JavaEEBasic.jpg);,INSERT INTO book VALUES(7,2,JavaEE,實(shí)用教程,39,JavaEE.jpg);,INSERT INTO book VALUES(8,2,Java,實(shí)用教程(,第,第,2,版),50,Java.jpg);,INSERT INTO book VALUES(9,4,JSP,編程教程,30,JSP.jpg);,INSERT INTO book VALUES(10,3,MySQL,實(shí)用
16、教程,37,MySQL.jpg);,INSERT INTO book VALUES(11,3,Oracle,實(shí)用教程(,第,第,3,版),29,Oracle.jpg);,INSERT INTO book VALUES(12,4,PHP,實(shí)用教程,35,PHP.jpg);,INSERT INTO book VALUES(13,3,SQLServer,實(shí)用教程(,第,第,3,版),25,SQL Server.jpg);,INSERT INTO book VALUES(14,1,Visual C+,教程(第,2,版),25,VC+.jpg);,4.2,搭建項(xiàng)目框,架,架,4,添加,SSH2,多框架,要注意添加,的,的次序:,(,1,)添加,Spring,核心容器。,(,2,)添加,Hibernate,框架。,(,3,)添加,Struts 2,框架。,(,4,),Struts 2,與,Spring,集成。,具體操作同,4.1.2,小節(jié),在第,(,(,2,)步添加了,Hibernate,后,要一并,將,將,bookstore,中的,5,個(gè)表全都用,“,“反向工程,”,”法生成持,久,久化對(duì)象及,