版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
i-題目:深圳市出入境業(yè)務(wù)在線預(yù)約平臺設(shè)計(jì)與實(shí)現(xiàn)摘要在各出入境業(yè)務(wù)受理大廳,人多擁擠、辦證等候時間長等是一個普遍現(xiàn)象。本文以深圳市出入境管理局為落腳點(diǎn),詳細(xì)闡述深圳市出入境業(yè)務(wù)在線預(yù)約平臺的分析、設(shè)計(jì)與實(shí)現(xiàn)的全過程。該平臺系統(tǒng)是基于面向?qū)ο蠓治龊驮O(shè)計(jì)思想,采用UML建模語言,基于MVC設(shè)計(jì)模式,利用Struts2與Hibernate框架的JavaEEB/S系統(tǒng)。系統(tǒng)實(shí)現(xiàn)了普通用戶查詢預(yù)約、業(yè)務(wù)員預(yù)約單管理、管理員信息維護(hù)等功能。主要內(nèi)容包括:(1)描述項(xiàng)目的背景與意義,對項(xiàng)目開發(fā)現(xiàn)狀進(jìn)行分析,確定項(xiàng)目的研究目標(biāo)和范圍。(2)引用中西方文獻(xiàn)對系統(tǒng)開發(fā)采用的主要技術(shù):B/S模式、struts2框架、Hibernate框架、SQL語言及MySQL數(shù)據(jù)庫、UML標(biāo)準(zhǔn)建模等技術(shù)和原理進(jìn)行簡要介紹。(3)對項(xiàng)目進(jìn)行需求建模,分析系統(tǒng)的功能性需求,劃分系統(tǒng)模塊并給出系統(tǒng)用例圖,然后對核心用例的設(shè)計(jì)進(jìn)行較為詳細(xì)的闡述。(4)給出系統(tǒng)的架構(gòu)及原理,詳細(xì)敘述核心業(yè)務(wù)的實(shí)現(xiàn),完成數(shù)據(jù)庫設(shè)計(jì)。(5)對系統(tǒng)核心模塊的實(shí)現(xiàn)進(jìn)行算法描述。(6)說明系統(tǒng)運(yùn)行環(huán)境,描述項(xiàng)目部署方法并對部分系統(tǒng)界面進(jìn)行演示。(7)對項(xiàng)目的整個完成過程進(jìn)行總結(jié),提出優(yōu)缺點(diǎn),并對項(xiàng)目提出改進(jìn)方案以及前景展望。關(guān)鍵詞: 出入境;業(yè)務(wù)預(yù)約;JSP;MVC;UML建模
AbstractLonglinequeuingisacommonphenomenonalmostineachExit-EntryAdministrationServiceHal.ThispaperusesShenzhenExit-EntryAdministrationasfootholdandshowsallthedevelopmentprocessofExit-EntryServiceReservationSystem(ESRS)indetails.TheShenzhenESRSisaJ2EEB/SsystemthatusesObjectOrientedanalyzeanddesigntechnology,MVCdesignpattern,Struts2andHibernateframeworks.Thesystemrealisessomecriticalfunctionsinclucingqueryandreservationbyclients,ordermanagementbyclerks,informationmanagementbycontrolleretc.Themaincontentsofthispaperincludes:(1)Pointedoutthisproject’sbackground,meaningandthecurrentstudyingsituationbothathomeandabroad,indentifiedtheresearchobject.(2)IntroducedthemaintechnologiesincludingB/Smode,struts2andHibernateframeworks,SQL,MySQLandUMLbyquotingreferences.(3)Didrequirementsmodelingfortheproject.Byanalyzingthefunctionalrequirements,finishedmoduleindentificationandthecoreusercasesdesign.(4)Representedthearchitectureandprincipleofthissystem.Elaboratedtheimplementationofcorebusinesses.Finisheddatabasedesign.(5)Finishedthealgorithmdescriptionofthecoremodules.(6)Instructionsforrunningenvironmentofsystem.Explainedhowtodeploytheprojectandrepresentedsomesysteminterface.(7)Summarizedthewholedevelopmentprocess,analyzedthemeritandshortcoming,thenproposedsomeimprovementsolutionsandmadeaprospectforthisproject.Keywords: Exit-Entry;ServiceReservation;JSP;MVC;UMLPAGE8目錄TOC\o"1-3"目錄 v第一章前言 71.1項(xiàng)目的背景和意義 71.2 研究開發(fā)現(xiàn)狀分析 81.3研究目標(biāo)和范圍 91.4論文結(jié)構(gòu)簡介 9第二章技術(shù)與原理 112.1B/S模式 112.2MVC設(shè)計(jì)模式 112.3Struts2框架 122.4Hibernate框架 142.5SQL語言及MySQL 152.6UML建模技術(shù) 16第三章需求建模 183.1 系統(tǒng)需求概述 183.1.1 功能性需求分析 183.1.2 系統(tǒng)模塊劃分 183.1.3 系統(tǒng)用例圖 193.1.4 系統(tǒng)用例列表 203.2核心用例設(shè)計(jì) 213.2.1 UC01:業(yè)務(wù)預(yù)約辦理 213.2.2 UC04:本網(wǎng)點(diǎn)排隊(duì)狀況查詢 223.2.3 UC07(1):業(yè)務(wù)員信息維護(hù)——添加業(yè)務(wù)員 23第四章架構(gòu)設(shè)計(jì) 254.1系統(tǒng)架構(gòu)及原理 254.2業(yè)務(wù)用例的實(shí)現(xiàn) 254.2.1 普通客戶-業(yè)務(wù)辦理預(yù)約 254.2.2 業(yè)務(wù)員-本網(wǎng)點(diǎn)排隊(duì)情況查詢及修改 264.2.3 管理員-業(yè)務(wù)員信息管理 274.3數(shù)據(jù)庫設(shè)計(jì) 284.3.1 E-R圖 284.3.2 數(shù)據(jù)表設(shè)計(jì) 29第五章模塊設(shè)計(jì) 325.1用戶模塊:業(yè)務(wù)辦理預(yù)約功能模塊算法描述 335.2業(yè)務(wù)員模塊:本網(wǎng)點(diǎn)排隊(duì)狀況查詢功能模塊算法描述 355.3管理員模塊:業(yè)務(wù)員信息管理功能模塊算法描述 39第六章部署與應(yīng)用 446.1項(xiàng)目部署 446.2系統(tǒng)運(yùn)行環(huán)境 446.3部分界面演示 44第七章結(jié)論 48致謝 49參考文獻(xiàn) 50第一章前言本章論文的第一部分,對項(xiàng)目的背景和意義進(jìn)行了闡述,并對該項(xiàng)目的研究開發(fā)現(xiàn)狀進(jìn)行了分析,確立了研究目標(biāo)和范圍,最后對論文的整體結(jié)構(gòu)進(jìn)行了簡介。1.1項(xiàng)目的背景和意義隨著改革開放的不斷深入和經(jīng)濟(jì)社會的高速發(fā)展,對外交流交往不斷增加,越來越多的公民需要向出入境管理局辦理出入境手續(xù)出境商務(wù)交流或者旅游。群眾申請需求不斷提升和窗口民警警力不足的矛盾,使出入境受理大廳人多擁擠、辦證等候時間長等問題日益突出,窗口民警和申請人都承受了巨大的壓力HYPERLINK[1]。對于申請人而言,辦理出入境業(yè)務(wù)模式往往具有兩個特點(diǎn)。第一個是時間集中:由于人的作息習(xí)慣大體相同,因此可能在一周內(nèi)某天或者一天內(nèi)某個時間段會集中有大量的申請人前往辦事大廳辦理業(yè)務(wù);第二個是地點(diǎn)集中,居民集中地區(qū)較相對偏遠(yuǎn)地區(qū)的受理大廳會有更多地申請人前來辦理業(yè)務(wù),導(dǎo)致不同地點(diǎn)受理廳的窗口壓力不平衡。而對于各大受理大廳而言,其行政模式導(dǎo)致其警力安排也有兩大特點(diǎn)。第一個是一般警力會在一天內(nèi)平均分配:各地出入境受理廳大都實(shí)行輪崗制,在各時間段內(nèi)確保警力一致;而第二個是不同地點(diǎn)的受理廳的警力保持平衡:由于無法預(yù)測各受理廳的業(yè)務(wù)壓力,因此各受理廳會根據(jù)其規(guī)模配備平衡的警力HYPERLINK[2]。由此可見,雙方信息不對稱不透明是引起受理大廳人多擁擠、辦證等候時間長的原因。申請人無法根據(jù)出入境管理局公布的業(yè)務(wù)量信息安排申請,受理大廳也無法提前掌握各大廳辦理人數(shù)來分配警力。深圳市出入境業(yè)務(wù)在線預(yù)約平臺根據(jù)矛盾的特點(diǎn),主要著力于解決兩個方面的問題,一個是通過查詢網(wǎng)點(diǎn)信息幫助申請人了解受理廳業(yè)務(wù)壓力信息,另一個是通過申請人提前預(yù)約幫助受理廳了解當(dāng)天業(yè)務(wù)流量。出入境業(yè)務(wù)在線預(yù)約平臺的開發(fā),有效地解決兩者矛盾,提高雙方效率,具有較強(qiáng)的現(xiàn)實(shí)意義。研究開發(fā)現(xiàn)狀分析隨著科技的發(fā)展,90年代中末計(jì)算機(jī)和網(wǎng)絡(luò)技術(shù)開始在政務(wù)系統(tǒng)中應(yīng)用,并且引入了電子政務(wù)的概念。在各個政府部門中,各地出入境管理局一直走在電子政務(wù)發(fā)展的前列。對于內(nèi)部的政務(wù)電子化建設(shè)而言,1999年廣東省出入境信息管理系統(tǒng)投入運(yùn)作標(biāo)志著出入境業(yè)務(wù)從以前純?nèi)斯ぃ兗垙堄涗洉r代進(jìn)入了電子化,信息化時代HYPERLINK[3]。而至于外部的信息互動,深圳出入境管理局則一直走在政務(wù)公開電子化的前列,2002年7月8日,深圳市出入境便利網(wǎng)正式開通,這是我國第一個出現(xiàn)互動功能的出入境網(wǎng)站。該系統(tǒng)提供了各類申請表格的下載、實(shí)時查詢簽證進(jìn)程等功能HYPERLINK[4]。最近十幾年中,各地出入境管理局陸陸續(xù)續(xù)出現(xiàn)了具有互動功能的出入境網(wǎng)站,下面就信息雙向互動功能對“廣東省公安廳出入境政務(wù)服務(wù)網(wǎng)”和“深圳市公安局出入境便民網(wǎng)”對這些具有交互功能的出入境網(wǎng)站現(xiàn)狀進(jìn)行分析。廣東省公安廳出入境政務(wù)服務(wù)網(wǎng)針對的是廣州戶籍居民的服務(wù)門戶。其主要提供了辦事規(guī)定公開、表格下載、網(wǎng)上申請、網(wǎng)上預(yù)約和預(yù)約查詢功能。在申請者向出入境管理局輸出信息的方面,通過網(wǎng)上申請和網(wǎng)上預(yù)約,出入境管理局可以掌握每日不同時間段辦理出入境業(yè)務(wù)的人數(shù),可以更好地安排不同時間段和不同營業(yè)廳的警力,提高效率。而在出入境管理局向申請者輸出信息方面,出入境管理局辦事規(guī)定公開、表格下載和預(yù)約查詢功能都為有需要的人提供信息。但是在這個網(wǎng)站沒辦法查詢到每日不同受理大廳的排隊(duì)情況和各營業(yè)廳受理業(yè)務(wù)的業(yè)務(wù)類型,換而言之,申請者獲取不了不同網(wǎng)點(diǎn)的詳細(xì)信息。在深圳市公安局出入境便民網(wǎng)中,情況也非常類似,其主要提供了辦事規(guī)定公開、表格下載、網(wǎng)上申請、網(wǎng)上預(yù)約和預(yù)約查詢功能。在從申請者向出入境管理局輸出信息方向比較好,出入境管理局可以實(shí)時掌握信息。而在出入境管理局向申請者輸出信息方面,深圳市的網(wǎng)站依然沒辦法查詢到每日不同受理大廳的排隊(duì)情況和可受理業(yè)務(wù)的類型。因此,在這一類的業(yè)務(wù)預(yù)約平臺中,出入境管理局對申請者提供的信息均不足夠,依然沒辦法滿足申請者可以根據(jù)各不同受理大廳的情況進(jìn)行業(yè)務(wù)預(yù)約的要求。1.3研究目標(biāo)和范圍深圳市出入境業(yè)務(wù)在線預(yù)約平臺是吸收了現(xiàn)有的出入境業(yè)務(wù)系統(tǒng)已有的服務(wù),進(jìn)一步細(xì)化從出入境管理局向申請人輸出的信息。幫助申請人了解不同的受理網(wǎng)點(diǎn)的業(yè)務(wù)情況。本系統(tǒng)是使用MyEclipse工具開發(fā),基于Struts2與Hibernate框架的JavaEEB/S系統(tǒng)。JavaEE版本為5.0,Struts2版本2.1.8,Hibernate版本3.3,數(shù)據(jù)庫使用MySQL5.5,部署在Tomcat6服務(wù)器上。系統(tǒng)利用UML技術(shù)進(jìn)行分析設(shè)計(jì),在短期敏捷開發(fā)出預(yù)想中的簡單、易用的預(yù)約平臺。同時力求系統(tǒng)實(shí)現(xiàn)系統(tǒng)可靠性、可用性、有效性、可維護(hù)性等非功能性需求。1.4論文結(jié)構(gòu)簡介論文共分為七章,從項(xiàng)目開發(fā)背景、相關(guān)技術(shù)與原理、需求建模、架構(gòu)設(shè)計(jì)、模塊設(shè)計(jì)及部署應(yīng)用和項(xiàng)目總結(jié)等方面進(jìn)行了詳盡的闡述。各章大體內(nèi)容如下::前言,包括項(xiàng)目背景和意義、研究與現(xiàn)狀分析、項(xiàng)目的目標(biāo)和范圍以及論文的結(jié)構(gòu)簡介,闡明了項(xiàng)目來源、系統(tǒng)開發(fā)的動機(jī)、意義和可行性,界定了項(xiàng)目的目標(biāo)和范圍,簡介了論文結(jié)構(gòu);:技術(shù)與原理,主要描述了系統(tǒng)所使用的相關(guān)技術(shù)和原理,簡要介紹了B/S、MVC設(shè)計(jì)模式、Struts2與Hibernate框架、SQL語言及MySQL、UML建模方法等技術(shù)原理;:需求建模,主要是提取項(xiàng)目的功能性需求概述,系統(tǒng)模塊的劃分,系統(tǒng)用例表和系統(tǒng)用例圖的簡單描述,給出系統(tǒng)領(lǐng)域模型,并且對系統(tǒng)的核心用例進(jìn)行詳細(xì)用例分析并畫出活動圖;:架構(gòu)設(shè)計(jì),主要是系統(tǒng)架構(gòu)設(shè)計(jì),描述系統(tǒng)各部分的組成以及各部分之間的通訊機(jī)制,還有核心用例實(shí)現(xiàn)的順序圖以及整個系統(tǒng)數(shù)據(jù)庫的設(shè)計(jì)等;:模塊設(shè)計(jì),對系統(tǒng)主要模塊進(jìn)行詳細(xì)設(shè)計(jì),描述核心用例相關(guān)類設(shè)計(jì)和實(shí)現(xiàn),以及算法的實(shí)現(xiàn);:部署與應(yīng)用,利用系統(tǒng)部署圖對項(xiàng)目部署進(jìn)行說明,描述了系統(tǒng)的運(yùn)行環(huán)境,并選擇若干典型界面說明系統(tǒng)的重要輸入/輸出;:結(jié)論,總結(jié)在設(shè)計(jì)和開發(fā)系統(tǒng)過程中工作的優(yōu)點(diǎn)和不足之處,并提出系統(tǒng)的改進(jìn)方案和前景展望。
第二章技術(shù)與原理2.1B/S模式B/S模式即Brower/Server模式。隨著Internet越來越廣泛的應(yīng)用,原來基于局域網(wǎng)的企業(yè)網(wǎng)開始采用Internet技術(shù)構(gòu)筑和改建自己的企業(yè)網(wǎng),即Intranet.于是,一種新興的體系結(jié)構(gòu)Browser/Server應(yīng)運(yùn)而生,并獲得飛速發(fā)展,成為眾多企業(yè)爭相采用的新型體系結(jié)構(gòu).本質(zhì)上,Browser/Server也是一種Client/Server結(jié)構(gòu),它是一種由傳統(tǒng)的二層Client/Server結(jié)構(gòu)發(fā)展而來的三層Client/Server結(jié)構(gòu)在Web上應(yīng)用的特例.在Browser/Server的系統(tǒng)中,用戶可以通過瀏覽器向分布在網(wǎng)絡(luò)上的許多服務(wù)器發(fā)出請求.Browser/Server結(jié)構(gòu)極大地簡化了客戶機(jī)的工作,客戶機(jī)上只需安裝、配置少量的客戶端軟件即可,服務(wù)器將擔(dān)負(fù)更多的工作,對數(shù)據(jù)庫的訪問和應(yīng)用程序的執(zhí)行將在服務(wù)器上完成HYPERLINK[5].鑒于B/S模式的這種優(yōu)點(diǎn),因此本系統(tǒng)選擇了采用B/S模式來進(jìn)行開發(fā)。2.2MVC設(shè)計(jì)模式MVC模式(三層架構(gòu)模式)(Model-View-Controller)是\o"軟件工程"軟件工程中的一種\o"軟件架構(gòu)"軟件架構(gòu)模式,把軟件系統(tǒng)分為三個基本部分:模型(Model)、視圖(View)和控制器(Controller)。它強(qiáng)制性的使應(yīng)用程序的輸入、處理和輸出分開,各自處理自己的任務(wù)。三者關(guān)系如圖2-1所示。圖2-1:MVC框架關(guān)系圖HYPERLINK[6]視圖(View):代表用戶交互界面,對于Web應(yīng)用來說,可以概括為HTML界面,但有可能為XHTML、XML和Applet。隨著應(yīng)用的復(fù)雜性和規(guī)模性,界面的處理也變得具有挑戰(zhàn)性。一個應(yīng)用可能有很多不同的視圖,MVC設(shè)計(jì)模式對于視圖的處理僅限于視圖上數(shù)據(jù)的采集和處理,以及用戶的請求,而不包括在視圖上的業(yè)務(wù)流程的處理??刂疲–ontroller):可以理解為從用戶接收請求,將模型與視圖匹配在一起,共同完成用戶的請求,在許多設(shè)計(jì)中在這里應(yīng)用了適配器模式。劃分控制層的作用也很明顯,它清楚地告訴你,它就是一個分發(fā)器或者說是選擇器,選擇什么樣的模型,選擇什么樣的視圖,可以完成什么樣的用戶請求??刂茖硬⒉蛔鋈魏蔚臄?shù)據(jù)處理。例如,用戶點(diǎn)擊一個連接,控制層接受請求后,并不處理業(yè)務(wù)信息,它只把視圖層傳過來的用戶的信息傳遞給模型,告訴模型做什么,選擇符合要求的視圖返回給用戶。因此,一個模型可能對應(yīng)多個視圖。模型(Model):就是業(yè)務(wù)流程/狀態(tài)的處理以及業(yè)務(wù)規(guī)則的制定。業(yè)務(wù)流程的處理過程對其它層來說是黑箱操作,模型接受來自由Controller處理選擇轉(zhuǎn)發(fā)視圖請求的數(shù)據(jù),并將處理結(jié)果通過Controller轉(zhuǎn)發(fā)或直接返回給視圖層。業(yè)務(wù)模型的設(shè)計(jì)可以說是MVC最主要的核心。在J2EE平臺中主要是由EJB和JavaBean來實(shí)現(xiàn)。對于開發(fā)人員來說可以不管視圖的設(shè)計(jì),這樣就可以專注于業(yè)務(wù)模型的設(shè)計(jì)HYPERLINK[7]。2.3Struts2框架Struts2以WebWork優(yōu)秀的設(shè)計(jì)思想為核心,吸收了Strutsl的部分優(yōu)點(diǎn),建立了一個兼容WebWork和Strutsl的MVC框架?;赟trutsl和WebWork框架的成熟性,Struts2不僅保留了Strutsl的簡單易用性,并且充分利用了WebWork的攔截器機(jī)制(其實(shí)就是AOP思想),將Struts2發(fā)展成一個具有高度可擴(kuò)展性的框架?;谶@種背景,Struts2將會在短時間內(nèi)迅速成為MVC領(lǐng)域最流行的框架。Struts2的體系結(jié)構(gòu)如圖2-2所示,下面依據(jù)Struts2體系結(jié)構(gòu)說明Struts2的工作機(jī)制。圖2-2:Struts2架構(gòu)用戶在客戶端產(chǎn)生一個服務(wù)器端(例如Tomcat)的請求;客戶端產(chǎn)生的請求經(jīng)過框架的一系列過濾器(Filter),為請求經(jīng)過Struts2安全處理打下基礎(chǔ);接著這個請求經(jīng)過Struts2核心控制器FilterDispatcher,F(xiàn)ilterDispatcher詢問ActionMapper來決定這個請求是否需要調(diào)用某個Action;如果ActionMapper決定需要調(diào)用某個Action,F(xiàn)ilterDispateher把請求的處理交給ActionProxy;ActionProxy通過ConfigurationManager詢問框架的配置文件(struts.xml),找到需要調(diào)用的Action類;ActionProxy創(chuàng)建一個ActionInvocation的實(shí)例;ActionInvocationn實(shí)例使用命名模式來調(diào)用,在調(diào)用Action的過程前后,涉及到相關(guān)攔截器(Interceptor)的調(diào)用;一旦Action執(zhí)行完畢ActionInvocation,負(fù)責(zé)根據(jù)struts.xml中的result配置找到對應(yīng)的返回結(jié)果,返回結(jié)果通常是一個需要被表示的JSP或者FreeMarker的模板。在表示的過程中可以使用Struts2框架中繼承的標(biāo)簽.在這個過程中需要涉及到ActionMapperHYPERLINK[8]。2.4Hibernate框架Hibemate是一個開放源碼的ORM持久層框架。作為優(yōu)秀的數(shù)據(jù)持久層框架實(shí)現(xiàn),Hibemate框架提供了強(qiáng)大、高性能的對象到關(guān)系型數(shù)據(jù)庫的持久化服務(wù),開發(fā)人員可以使用面向?qū)ο蟮脑O(shè)計(jì)進(jìn)行持久層開發(fā)。簡單的說,Hibemate是一個將持久化類與數(shù)據(jù)庫表相映射的工具,其中每個持久化類在關(guān)系型數(shù)據(jù)庫中映射為一張表,而此類的實(shí)例映射為對應(yīng)表中的一條記錄,類中的映射屬性映射為表中的字段,開發(fā)者只需直接使用面向?qū)ο蟮姆椒ú僮鞔顺志没悓?shí)例,即可完成對數(shù)據(jù)庫表數(shù)據(jù)的插入、刪除、修改、讀取等操作。當(dāng)然實(shí)際的Hibernate框架非常復(fù)雜,用分層的概念劃分的話,它相當(dāng)于在業(yè)務(wù)邏輯處理層和數(shù)據(jù)庫底層JDBC驅(qū)動之間的一層,即通常說的持久化層,而開發(fā)人員通過XML配置文件或者Annotaion標(biāo)簽將具體的持久化類與數(shù)據(jù)庫表映射起來。Hibernate框架如圖2-3所示。圖2-3:Hibernate架構(gòu)圖2-3是對Hibemate高層的概覽。圖中說明了Hibernate提供持久對象(PersistentObjects)給應(yīng)用程序Application的方法結(jié)構(gòu)。在進(jìn)行應(yīng)用的持久化層開發(fā)時,只需要編寫簡單的POJO類以及建立類之間的關(guān)聯(lián)關(guān)系,并通過簡單的設(shè)置配置文件perties和創(chuàng)建POJO類所對應(yīng)的XML映射,這樣就可以實(shí)現(xiàn)對象的持久化,從而代替大量復(fù)雜的JDBC編程。Hibemate支持17種數(shù)據(jù)庫,同時支持連接池應(yīng)用。Hibernate的核心類主要分為兩部分:一部分負(fù)責(zé)初始化Hibernate;另一部分為應(yīng)用程序提供通用數(shù)據(jù)接口。Configuration接口負(fù)責(zé)配置并啟動Hibemate,創(chuàng)建SessionFactory對象。在Hibemate的啟動的過程中,conriguration類的實(shí)例首先定位映射文檔位置、讀取配置。然后創(chuàng)建SessionFactory對象;SessionFactroy接口負(fù)責(zé)初始化Hibernate。它充當(dāng)數(shù)據(jù)存儲源的代理,并負(fù)責(zé)創(chuàng)建Session對象。由于SessionFactory是線程安全的對象,因此在整個應(yīng)用中擁有唯一即可;Session接口負(fù)責(zé)執(zhí)行被持久化對象的CRUD操作,但是Session對象是非線程安全的,所以每次事物完畢就需要關(guān)閉當(dāng)前Session;Transaction接口負(fù)責(zé)事務(wù)相關(guān)的操作,它是可選的,開發(fā)人員也可以設(shè)計(jì)編寫自己的底層事務(wù)處理代碼;Query和Criteria接口負(fù)責(zé)執(zhí)行各種數(shù)據(jù)庫查詢。它可以使用HOL語言或SQL語句兩種表達(dá)方式。HYPERLINK[9]2.5SQL語言及MySQLSQL(StructuredQueryLanguage)結(jié)構(gòu)化查詢語言,是一種數(shù)據(jù)庫查詢和程序設(shè)計(jì)語言,用于存取數(shù)據(jù)以及查詢、更新和管理關(guān)系數(shù)據(jù)庫系統(tǒng)。SQL是高級的非過程化編程語言,是溝通數(shù)據(jù)庫服務(wù)器和客戶端的重要工具,允許用戶在高層數(shù)據(jù)結(jié)構(gòu)上工作。它不要求用戶指定對數(shù)據(jù)的存放方法,也不需要用戶了解具體的數(shù)據(jù)存放方式,所以,具有完全不同底層結(jié)構(gòu)的不同數(shù)據(jù)庫系統(tǒng),可以使用相同的SQL語言作為數(shù)據(jù)輸入與管理的SQL接口。它以記錄集合作為操作對象,所有SQL語句接受集合作為輸入,返回集合作為輸出,這種集合特性允許一條SQL語句的輸出作為另一條SQL語句的輸入,所以SQL語句可以嵌套,這使它具有極大的靈活性和強(qiáng)大的功能,在多數(shù)情況下,在其他語言中需要一大段程序?qū)崿F(xiàn)的功能只需要一個SQL語句就可以達(dá)到目的,這也意味著用SQL語言可以寫出非常復(fù)雜的語句HYPERLINK[10]。MySQL和市場上絕大多數(shù)其他的數(shù)據(jù)庫一樣,是一種關(guān)系數(shù)據(jù)庫系統(tǒng)。MySQL是一種客戶/服務(wù)器系統(tǒng)。整個系統(tǒng)由一個數(shù)據(jù)庫服務(wù)器(MySQL)和任意多個客戶(應(yīng)用程序)構(gòu)成??蛻敉ㄟ^與服務(wù)器進(jìn)行通信的方式來完成數(shù)據(jù)查詢和保存修改操作??蛻艏瓤梢耘c服務(wù)器運(yùn)行在同一臺計(jì)算機(jī)上,也可以運(yùn)行在另外一臺計(jì)算機(jī)上(此時將通過一個本地網(wǎng)絡(luò)或因特網(wǎng)進(jìn)行通信)。 MySQL支持SQL(StructuredQueryLanguage,結(jié)構(gòu)化查詢語言)作為自己的數(shù)據(jù)庫語言。SQL是一種專門用于查詢和修改數(shù)據(jù)庫里的數(shù)據(jù)以及對數(shù)據(jù)庫進(jìn)行管理和維護(hù)的標(biāo)準(zhǔn)化語言??梢酝ㄟ^調(diào)整MySQL服務(wù)器的配置開關(guān)sql-mode使它在行為上與包括IBMDB2和Oracle在內(nèi)的多種數(shù)據(jù)庫系統(tǒng)保持最大限度的兼容庫系統(tǒng)。 MySQL包含如下特性:開放性,它所使用的語言SQL以ANSISQL2為基礎(chǔ),這個數(shù)據(jù)庫引擎可以運(yùn)行在多個平臺上,包括Windows2000、MacOSX、Linux、FreeBSD和Solaris;應(yīng)用支持:MySQL為幾乎任何編程語言提供了API,可以編寫用C、C++、Eiffel、Java、Perl、PHP、Python、和Tcl來訪問MySQL的數(shù)據(jù)庫應(yīng)用程序;跨數(shù)據(jù)庫連接:可以連接不同數(shù)據(jù)庫的表以建立MySQL查詢;外連接支持
:MySQL支持ANSI及ODBC的左外連接和右外連接;國際化:MySQL支持幾種不同的字符集,包括ISO-8859-1,Big5和Shift-JIS,它也支持不同字符集的排序,而且提供不同語言的錯誤信息提示HYPERLINK[11]。2.6UML建模技術(shù)UML(統(tǒng)一建模語言)是描述、構(gòu)造和文檔化系統(tǒng)制品的可視化語言HYPERLINK[12]。標(biāo)準(zhǔn)建模語言UML的重要內(nèi)容可以由下列五種類圖來定義HYPERLINK[13]:第一類是用例圖,從用戶角度描述系統(tǒng)功能,并指出各功能的操作者。第二類是靜態(tài)圖(Staticdiagram),包括類圖、對象圖和包圖。其中類圖描述系統(tǒng)中類的靜態(tài)結(jié)構(gòu)。不僅定義系統(tǒng)中的類,表示類之間的聯(lián)系如關(guān)聯(lián)、依賴、聚合等,也包括類的內(nèi)部結(jié)構(gòu)(類的屬性和操作)。類圖描述的是一種靜態(tài)關(guān)系,在系統(tǒng)的整個生命周期都是有效的。對象圖是類圖的實(shí)例,幾乎使用與類圖完全相同的標(biāo)識。他們的不同點(diǎn)在于對象圖顯示類的多個對象實(shí)例,而不是實(shí)際的類。一個對象圖是類圖的一個實(shí)例。由于對象存在生命周期,因此對象圖只能在系統(tǒng)某一時間段存在。包由包或類組成,表示包與包之間的關(guān)系。包圖用于描述系統(tǒng)的分層結(jié)構(gòu)。第三類是行為圖(Behaviordiagram),描述系統(tǒng)的動態(tài)模型和組成對象間的交互關(guān)系。包括狀態(tài)圖、活動圖、順序圖和協(xié)作圖。其中狀態(tài)圖描述類的對象所有可能的狀態(tài)以及事件發(fā)生時狀態(tài)的轉(zhuǎn)移條件。通常,狀態(tài)圖是對類圖的補(bǔ)充。在實(shí)用上并不需要為所有的類畫狀態(tài)圖,僅為那些有多個狀態(tài)其行為受外界環(huán)境的影響并且發(fā)生改變的類畫狀態(tài)圖。而活動圖描述滿足用例要求所要進(jìn)行的活動以及活動間的約束關(guān)系,有利于識別并行活動?;顒訄D是一種特殊的狀態(tài)圖,它對于系統(tǒng)的功能建模特別重要,強(qiáng)調(diào)對象間的控制流程。順序圖展現(xiàn)了一組對象和由這組對象收發(fā)的消息,用于按時間順序?qū)刂屏鹘!S庙樞驁D說明系統(tǒng)的動態(tài)視圖。協(xié)作圖展現(xiàn)了一組對象,這組對象間的連接以及這組對象收發(fā)的消息。它強(qiáng)調(diào)收發(fā)消息的對象的結(jié)構(gòu)組織,按組織結(jié)構(gòu)對控制流建模。順序圖和協(xié)作圖都是交互圖,順序圖和協(xié)作圖可以相互轉(zhuǎn)換。第四類是交互圖(Interactivediagram),描述對象間的交互關(guān)系,包括順序圖和合作圖。其中順序圖顯示對象之間的動態(tài)合作關(guān)系,它強(qiáng)調(diào)對象之間消息發(fā)送的順序,同時顯示對象之間的交互;合作圖描述對象間的協(xié)作關(guān)系,合作圖跟順序圖相似,顯示對象間的動態(tài)合作關(guān)系。除顯示信息交換外,合作圖還顯示對象以及它們之間的關(guān)系。如果強(qiáng)調(diào)時間和順序,則使用順序圖;如果強(qiáng)調(diào)上下級關(guān)系,則選擇合作圖。這兩種圖合稱為交互圖。第五類是實(shí)現(xiàn)圖(Implementationdiagram)。其中構(gòu)件圖描述代碼部件的物理結(jié)構(gòu)及各部件之間的依賴關(guān)系。
第三章需求建模本章主要內(nèi)容包括對系統(tǒng)功能性需求進(jìn)行分析,給出系統(tǒng)模塊的劃分,并畫出系統(tǒng)用例圖。然后對于系統(tǒng)的核心用例進(jìn)行了分析。最后再對本系統(tǒng)的領(lǐng)域模型進(jìn)行了分析。系統(tǒng)需求概述功能性需求分析通過咨詢深圳市出入境管理局的行政架構(gòu)和對深圳市出入境便民網(wǎng)的分析與研究,我得出了本系統(tǒng)主要面向以下三種對象:普通申請客戶,業(yè)務(wù)員以及系統(tǒng)管理員。按照提取需求的基本思路,根據(jù)本項(xiàng)目的特點(diǎn),結(jié)合已有的研究成果,得出以下系統(tǒng)需求:普通申請客戶角度:希望可以對各網(wǎng)點(diǎn)信息查詢并且根據(jù)信息和自身需要進(jìn)行預(yù)約。同時希望可以對自己的預(yù)約記錄進(jìn)行查詢。出入境業(yè)務(wù)員角度:希望可以查詢本網(wǎng)點(diǎn)預(yù)約排隊(duì)狀態(tài)分配警力,并且可以修改已辦理業(yè)務(wù)的預(yù)約單狀態(tài)。系統(tǒng)管理員角度:希望對網(wǎng)點(diǎn)和業(yè)務(wù)員信息進(jìn)行維護(hù)。系統(tǒng)模塊劃分深圳市出入境網(wǎng)上預(yù)約系統(tǒng)根據(jù)使用者和功能可以分為以下幾大模塊:普通客戶模塊:進(jìn)行網(wǎng)點(diǎn)查詢、網(wǎng)上預(yù)約和預(yù)約查詢。業(yè)務(wù)員管理模塊:進(jìn)行本網(wǎng)點(diǎn)排隊(duì)狀況查詢和修改預(yù)約單狀態(tài)。管理員模塊:進(jìn)行網(wǎng)點(diǎn)信息管理、業(yè)務(wù)信息管理和業(yè)務(wù)員信息管理。本系統(tǒng)的功能模塊劃分如圖3-1:圖3-1:系統(tǒng)模塊劃分圖系統(tǒng)用例圖結(jié)合前文分析,該網(wǎng)上預(yù)約系統(tǒng)系統(tǒng)主要是面向普通客戶、出入境業(yè)務(wù)員和后臺管理員三種對象。業(yè)務(wù)員和管理員必須登錄之后才能進(jìn)行操作,根據(jù)提示登陸以后,每一類人員都能在自己權(quán)限范圍之內(nèi)的模塊進(jìn)行操作。普通客戶則不需要經(jīng)過注冊或登錄即可下單預(yù)約。圖3-2為出入境業(yè)務(wù)預(yù)約平臺的用例圖。圖3-2:系統(tǒng)用例圖系統(tǒng)用例列表表3-1為系統(tǒng)全部用例列表。表3-1:系統(tǒng)用例列表用例編號用例名稱簡單描述參與者UC01業(yè)務(wù)預(yù)約辦理用戶填寫信息后進(jìn)行預(yù)約普通客戶UC02個人預(yù)約記錄查詢用戶輸入證件號和預(yù)約密碼查詢預(yù)約記錄普通客戶UC03網(wǎng)點(diǎn)查詢用戶查詢各網(wǎng)點(diǎn)情況普通客戶UC04本網(wǎng)點(diǎn)排隊(duì)情況查詢業(yè)務(wù)員查看各網(wǎng)點(diǎn)排隊(duì)情況業(yè)務(wù)員UC05修改預(yù)約單狀態(tài)業(yè)務(wù)員修改所在網(wǎng)店預(yù)約單狀態(tài)業(yè)務(wù)員UC06網(wǎng)點(diǎn)信息維護(hù)管理員查詢、增加、修改、刪除網(wǎng)點(diǎn)信息管理員UC07業(yè)務(wù)員信息維護(hù)管理員查詢、增加、修改、刪除業(yè)務(wù)員信息管理員UC08業(yè)務(wù)信息維護(hù)管理員查詢、增加、修改、刪除業(yè)務(wù)信息管理員UC09注銷登錄業(yè)務(wù)員和管理員注銷本次登陸業(yè)務(wù)員、管理員3.2核心用例設(shè)計(jì)在本節(jié)中主要選擇了業(yè)務(wù)預(yù)約辦理、本網(wǎng)點(diǎn)排隊(duì)狀況查詢以及業(yè)務(wù)員信息管理三個用例進(jìn)行詳細(xì)闡述。UC01:業(yè)務(wù)預(yù)約辦理用例詳細(xì)描述,如表3-2所示。表3-2:業(yè)務(wù)預(yù)約辦理用例表用例名稱:業(yè)務(wù)預(yù)約辦理范圍:深圳市出入境業(yè)務(wù)在線預(yù)約平臺級別:用戶目標(biāo)主要參與者:普通客戶涉眾及其關(guān)注點(diǎn):普通用戶:希望可以盡快根據(jù)信息和自身需要進(jìn)行預(yù)約前置條件:成功登入預(yù)約頁面后置條件:客戶預(yù)約成功,獲得取號密碼主成功場景:申請客戶登入預(yù)約頁面,進(jìn)行出入境業(yè)務(wù)預(yù)約??蛻籼钊腩A(yù)約信息,確認(rèn)信息正確并輸入正確驗(yàn)證碼后提交。系統(tǒng)提示預(yù)約成功并顯示分配的取號密碼。擴(kuò)展:*a.系統(tǒng)在任何時候失敗1.檢查網(wǎng)絡(luò),系統(tǒng)服務(wù)器端,數(shù)據(jù)庫1a.預(yù)約頁面無法打開1.提示系統(tǒng)異常,顯示返回首頁按鈕2.檢查網(wǎng)絡(luò),系統(tǒng)服務(wù)器端,數(shù)據(jù)庫2a.預(yù)約信息不齊全提示用戶信息有誤。顯示返回首頁按鈕2b.驗(yàn)證碼填寫有誤提示驗(yàn)證碼有誤特殊需求:系統(tǒng)的設(shè)計(jì)保障系統(tǒng)的健壯性,信息的完整性和準(zhǔn)確性技術(shù)與數(shù)據(jù)變元表:無發(fā)生頻率:可能會不斷地發(fā)生UC04:本網(wǎng)點(diǎn)排隊(duì)狀況查詢用例詳細(xì)描述,如表3-3所示。表3-3:本網(wǎng)點(diǎn)排隊(duì)狀況查詢用例表用例名稱:本網(wǎng)點(diǎn)排隊(duì)狀況查詢范圍:深圳市出入境業(yè)務(wù)在線預(yù)約平臺級別:用戶目標(biāo)主要參與者:業(yè)務(wù)員涉眾及其關(guān)注點(diǎn):業(yè)務(wù)員:希望查看到自己所在網(wǎng)店當(dāng)前業(yè)務(wù)預(yù)約狀況前置條件:業(yè)務(wù)員具備權(quán)限,成功登陸業(yè)務(wù)員頁面。后置條件:系統(tǒng)提示本網(wǎng)點(diǎn)排隊(duì)狀況主成功場景:業(yè)務(wù)員登入登陸頁面填寫登錄信息登錄系統(tǒng)點(diǎn)擊本網(wǎng)店排隊(duì)狀況查詢系統(tǒng)提示本網(wǎng)點(diǎn)排隊(duì)狀況擴(kuò)展:*a.系統(tǒng)在任何時候失敗1.檢查網(wǎng)絡(luò),系統(tǒng)服務(wù)器端,數(shù)據(jù)庫1a.登陸頁面無法打開1.提示系統(tǒng)異常,顯示返回首頁按鈕2.檢查網(wǎng)絡(luò),系統(tǒng)服務(wù)器端,數(shù)據(jù)庫2a.登錄信息有誤提示用戶名或密碼錯誤,顯示返回首頁按鈕特殊需求:系統(tǒng)的設(shè)計(jì)保障系統(tǒng)的健壯性,信息的完整性和準(zhǔn)確性技術(shù)與數(shù)據(jù)變元表:無發(fā)生頻率:可能會不斷地發(fā)生UC07(1):業(yè)務(wù)員信息維護(hù)——添加業(yè)務(wù)員用例詳細(xì)描述,如表3-4所示。表3-4:添加業(yè)務(wù)員用例表用例名稱:添加業(yè)務(wù)員范圍:深圳市出入境業(yè)務(wù)在線預(yù)約平臺級別:用戶目標(biāo)主要參與者:管理員涉眾及其關(guān)注點(diǎn):管理員:希望添加新的業(yè)務(wù)員前置條件:管理員具備權(quán)限,成功登陸管理員頁面。后置條件:無主成功場景:管理員登入登陸頁面填寫登錄信息登錄系統(tǒng)點(diǎn)擊添加業(yè)務(wù)員信息按鈕填寫業(yè)務(wù)員姓名、密碼和所屬網(wǎng)點(diǎn)后提交擴(kuò)展:*a.系統(tǒng)在任何時候失敗檢查網(wǎng)絡(luò),系統(tǒng)服務(wù)器端,數(shù)據(jù)庫1a.預(yù)約頁面無法打開提示系統(tǒng)異常,顯示返回首頁按鈕檢查網(wǎng)絡(luò),系統(tǒng)服務(wù)器端,數(shù)據(jù)庫2a.登錄信息有誤提示用戶名或密碼錯誤,顯示返回首頁按鈕4a.業(yè)務(wù)員用戶名重復(fù)提示添加失敗,顯示返回首頁按鈕4b.業(yè)務(wù)員信息不完整提示添加失敗,顯示返回首頁按鈕特殊需求:系統(tǒng)的設(shè)計(jì)保障系統(tǒng)的健壯性,信息的完整性和準(zhǔn)確性技術(shù)與數(shù)據(jù)變元表:無發(fā)生頻率:可能會不斷地發(fā)生
第四章架構(gòu)設(shè)計(jì)4.1系統(tǒng)架構(gòu)及原理本系統(tǒng)是使用MyEclipse工具開發(fā),基于Struts2與Hibernate框架的JavaEEB/S系統(tǒng)。JavaEE版本為5.0,Struts2版本:2.1.8,Hibernate版本3.3,數(shù)據(jù)庫使用MySQL5.5,部署在Tomcat6服務(wù)器上??刂茖樱罕鞠到y(tǒng)采用MVC設(shè)計(jì)模式,使用struts2框架作為控制層,struts.xml文件配置的是通用信息及普通用戶的請求信息,manage-struts.xml配置了業(yè)務(wù)員及管理員的請求信息。DAO層(數(shù)據(jù)訪問層)本系統(tǒng)數(shù)據(jù)訪問層使用Hibernate框架,hbm的映射配置方式。表現(xiàn)層由于本系統(tǒng)為B/S結(jié)構(gòu),因此表現(xiàn)層為HTML與JSP,前端腳本使用JavaScript以及jQuery框架,部分功能使用ajax交互技術(shù),提升用戶體驗(yàn)。4.2業(yè)務(wù)用例的實(shí)現(xiàn)本節(jié)以出入境業(yè)務(wù)在線預(yù)約平臺中三個典型的用例為例,用順序圖來說明系統(tǒng)業(yè)務(wù)用例的實(shí)現(xiàn)過程。普通客戶-業(yè)務(wù)辦理預(yù)約圖4-1描述了普通客戶進(jìn)行業(yè)務(wù)預(yù)約辦理操作的順序圖,其含義說明如下:系統(tǒng)的控制層利用Struts2框架,普通客戶無需登錄,當(dāng)需要進(jìn)行業(yè)務(wù)預(yù)約時,向Struts2發(fā)出新建一個打開預(yù)約頁面的請求,控制層向DepartmentDaoImpl.java查詢網(wǎng)點(diǎn)信息后,組織預(yù)訂頁面prebook.jsp返回給客戶,并要求用戶輸入患者掛號所需要的信息??蛻籼顚懲戤呉院螅蚩刂茖酉駾epartmentDaoImpl.java發(fā)出添加一預(yù)約單對象的信息,用savePrebook()方法將預(yù)約單記錄到網(wǎng)點(diǎn)訂單信息中。然后通過返回的預(yù)約密碼,組織msg.jsp頁面向用戶顯示輸入成功信息。圖4-1:業(yè)務(wù)辦理預(yù)約順序圖業(yè)務(wù)員-本網(wǎng)點(diǎn)排隊(duì)情況查詢及修改圖4-2描述了本網(wǎng)點(diǎn)排隊(duì)狀況查詢及修改的順序圖,其含義說明如下:業(yè)務(wù)員向Struts2控制層發(fā)出登錄請求,獲得登錄頁面login.html。通過業(yè)務(wù)員賬戶密碼信息,調(diào)用findClerkByNameAndPsw()方法向ClerkDaoImpl.java檢查用戶名和密碼。正確后成功登入系統(tǒng),并轉(zhuǎn)跳回操作首頁。登錄系統(tǒng)之后,點(diǎn)擊網(wǎng)點(diǎn)排隊(duì)狀況查詢,控制層根據(jù)業(yè)務(wù)員所在網(wǎng)店的信息,調(diào)用DepartmentDaoImpl.java調(diào)用findAllPrebookByDept()方法收集訂單數(shù)量。并組織deptsearchresult.jsp頁面講信息反饋給業(yè)務(wù)員。如果需要修改訂單狀態(tài),在操作首頁點(diǎn)擊修改訂單狀態(tài),向控制器發(fā)出modifyPreBookStatus的命令。向DepartmentDaoImpl.java調(diào)用updatePrebook()方法修改預(yù)訂單已辦理或者未辦理的狀態(tài)。圖4-2:本網(wǎng)點(diǎn)排隊(duì)情況查詢及修改時序圖管理員-業(yè)務(wù)員信息管理圖4-3描述了業(yè)務(wù)員信息管理的順序圖,以下抽取編輯業(yè)務(wù)員信息部分解釋其含義:管理員向Struts2控制層發(fā)出登錄請求,獲得登錄頁面login.html。通過管理員賬戶密碼信息,調(diào)用findSuperUserByNameAndPsw()方法向SuDaoImpl.java檢查用戶名和密碼。正確后成功登入系統(tǒng),并轉(zhuǎn)跳回操作首頁。點(diǎn)擊業(yè)務(wù)員信息管理后,控制層向ClerkDaoImpl.java調(diào)用findAllClerk()方法獲得所有業(yè)務(wù)員信息的列表。組織clerkManage.jsp頁面向管理員顯示所有業(yè)務(wù)員信息。點(diǎn)擊添加業(yè)務(wù)員按鈕,控制層向ClerkDaoImpl.java調(diào)用modifyClerk()方法修改業(yè)務(wù)員個人信息。圖4-3:業(yè)務(wù)員信息管理時序圖4.3數(shù)據(jù)庫設(shè)計(jì)本系統(tǒng)使用MySQL對數(shù)據(jù)庫進(jìn)行設(shè)計(jì)實(shí)現(xiàn),然后采用JDBC技術(shù)與頁面進(jìn)行連接。E-R圖針對本系統(tǒng)的需求分析以及用例設(shè)計(jì),設(shè)計(jì)了相關(guān)的數(shù)據(jù)表格以及關(guān)系模式。本系統(tǒng)數(shù)據(jù)庫的的E-R圖4-4所示:圖4-4:深圳市出入境業(yè)務(wù)預(yù)約平臺數(shù)據(jù)庫E-R圖數(shù)據(jù)表設(shè)計(jì)<1>immigration數(shù)據(jù)庫表匯總?cè)缦卤?-1所示:表4-1:immigration數(shù)據(jù)庫表匯總表名功能說明prebook預(yù)約記錄表department受理網(wǎng)點(diǎn)信息service業(yè)務(wù)類型信息表dept_service網(wǎng)點(diǎn)可辦業(yè)務(wù)信息表;N-N關(guān)系clerk業(yè)務(wù)員信息表super_user管理員信息表;由DBA指派 <2>表4-2預(yù)約記錄表用來記錄所有預(yù)約單信息:表4-2:預(yù)約記錄表prebook的描述表名prebook說明預(yù)約記錄表字段名稱類型長度字段狀態(tài)說明prebook_idint10主鍵,非空預(yù)約記錄的主鍵,自動增長passport_idvarchar25非空身份證號或臺胞證號或護(hù)照號phonevarchar20非空聯(lián)系電話departmentint10外鍵受理單位的IDserviceint10外鍵申辦業(yè)務(wù)的IDpre_datedate預(yù)約日期pre_timechar3預(yù)約時間,可選的時間段為:10:30-11:30(am1)、14:30-15:30(pm1)、15:30-16:30(pm2)、16:30-17:30(pm3)verificationvarchar25取號密碼statusint1預(yù)約單狀態(tài):0為未受理,1為已辦理<3>表4-3受理網(wǎng)點(diǎn)表用來記錄所有受理網(wǎng)點(diǎn)的信息:表4-3:受理網(wǎng)點(diǎn)表department的描述表名department說明受理網(wǎng)點(diǎn)表字段名稱類型長度字段狀態(tài)說明dept_idint10主鍵,非空網(wǎng)點(diǎn)ID,自動增長namevarchar50網(wǎng)點(diǎn)名稱addressvarchar50網(wǎng)點(diǎn)地址<4>表4-4業(yè)務(wù)類型信心表用來記錄所有業(yè)務(wù)類型信息:表4-4:業(yè)務(wù)類型信息表service的描述表名service說明業(yè)務(wù)類型信息表字段名稱類型長度字段狀態(tài)說明service_idint10主鍵,非空業(yè)務(wù)類型IDnamevarchar80業(yè)務(wù)名稱<5>表4-5網(wǎng)點(diǎn)可辦理業(yè)務(wù)表用來記錄不同網(wǎng)點(diǎn)可以受理業(yè)務(wù)的信息:表4-5:網(wǎng)點(diǎn)可辦理的業(yè)務(wù)表dept_service描述表名dept_service說明網(wǎng)點(diǎn)可辦理的業(yè)務(wù)表,N:N關(guān)系表字段名稱類型長度字段狀態(tài)說明idint10主鍵,非空表記錄的主鍵,自動增長dept_idint10外鍵網(wǎng)點(diǎn)的IDserv_idint10外鍵服務(wù)類型的ID<6>表4-6業(yè)務(wù)員信息表用來記錄所有業(yè)務(wù)員信息:表4-6:業(yè)務(wù)員信息表clerk的描述表名clerk說明業(yè)務(wù)員信息表字段名稱類型長度字段狀態(tài)說明clerk_idint10主鍵,非空業(yè)務(wù)員的IDnamevarchar10業(yè)務(wù)員的名稱pwdvarchar15業(yè)務(wù)員登錄密碼dept_idint10外鍵業(yè)務(wù)員所屬的網(wǎng)點(diǎn)<7>表4-7管理員信息表用來記錄所有管理員信息,管理員有DBA預(yù)先指派:表4-7:管理員信息表super_user的描述表名super_user說明管理員信息表,由DBA指派字段名稱類型長度字段狀態(tài)說明su_idint10主鍵,非空管理員IDsu_namevarchar15管理員名稱pwdvarchar15管理員登錄密碼
第五章模塊設(shè)計(jì)在此次深圳市出入境業(yè)務(wù)在線預(yù)約平臺中,我將業(yè)務(wù)分成三大模塊,他們分別是普通用戶模塊、業(yè)務(wù)員管理模塊和管理員模塊。普通用戶模塊實(shí)現(xiàn)了網(wǎng)點(diǎn)查詢、網(wǎng)上預(yù)約和預(yù)約查詢?nèi)齻€主要的功能模塊。業(yè)務(wù)員模塊實(shí)現(xiàn)了本網(wǎng)點(diǎn)排隊(duì)狀況查詢和修改預(yù)約單狀態(tài)兩個功能模塊。管理員模塊則實(shí)現(xiàn)了網(wǎng)點(diǎn)信息、業(yè)務(wù)信息和業(yè)務(wù)員信息管理三個功能模塊。圖5-1為本系統(tǒng)所有類與接口和前端頁面視圖。圖5-1:所有類與接口和前端頁面視圖本章節(jié)將在三個大模塊中各選擇一個功能模塊,以文字描述及代碼展示的形式對其主要的類和接口進(jìn)行說明,闡述主要類關(guān)鍵方法的算法。5.1用戶模塊:業(yè)務(wù)辦理預(yù)約功能模塊算法描述業(yè)務(wù)辦理預(yù)約功能模塊中,主要是系統(tǒng)要將普通客戶所填寫的資料記錄到預(yù)約單數(shù)據(jù)表中。在主頁點(diǎn)擊網(wǎng)上預(yù)約按鈕后,index.html向控制器struts.xml調(diào)用toPrebookPage.action,查詢網(wǎng)點(diǎn),然后將結(jié)果組織到/WEB-INF/jsp/prebook.jsp。prebook.jsp收集預(yù)約信息保存為prebook類的一個對象。向控制器發(fā)出addPrebook.action,通過prebookAction.savePrebook()寫入到數(shù)據(jù)庫中。完成后通過msg.jsp輸出成功或失敗信息給用戶。<1>struts.xml配置信息以下為struts.xml中的配置信息,根據(jù)用戶發(fā)出的toPrebookPage或者addPrebook命令調(diào)用action.PrebookAction類中不同的方法: <!--查詢所有網(wǎng)點(diǎn)并跳轉(zhuǎn)到預(yù)約頁面--> <actionname="toPrebookPage"class="action.PrebookAction"method="toPrebookPage"> <resultname="success">/WEB-INF/jsp/prebook.jsp</result> </action> <!--增加新的預(yù)約記錄--> <actionname="addPrebook"class="action.PrebookAction"method="savePrebook"> <resultname="success">/WEB-INF/jsp/msg.jsp</result> </action> <2>Prebook類Prebook類用以記錄預(yù)約單的詳細(xì)信息,其包含變量包括,如圖5-2所示:圖5-2:Prebook類接口圖<3>IPrebookDao類IPrebookDao類接口被PrebookDaoImpl類實(shí)現(xiàn),作為變量dao存儲在PrebookAction中,其方法被PrebookAction類的方法調(diào)用,通過導(dǎo)入org.hibernate.Session,用Hibernate框架實(shí)現(xiàn)與數(shù)據(jù)數(shù)據(jù)庫連接。IPrebookDao類接口如圖5-3所示。圖5-3:IPrebookDao類接口圖<4>PrebookAction類 PrebookAction類是繼承于BaseAction類,其方法被控制器所調(diào)用,完成查詢網(wǎng)點(diǎn)并轉(zhuǎn)跳和添加預(yù)約單等功能。其主要接口如圖5-4所示。圖5-4:PrebookAction類接口圖 toPrebookPage()方法實(shí)現(xiàn)如圖5-5所示,首先需要通過IDepartmentDao類中findAllDepartments()的方法獲得數(shù)據(jù)庫中網(wǎng)點(diǎn)列表,并返回SUCCESS信息給控制器組織preboo.jsp。圖5-5:toPrebookPage()方法實(shí)現(xiàn)圖 savePrebook()方法如實(shí)現(xiàn)如圖5-6所示,首先按“證件前三位、預(yù)約日期、時間、最大預(yù)約記錄ID”來生成取號密碼,設(shè)置預(yù)約但狀態(tài)為未辦理并通過PrebookDaoImpl的實(shí)例dao將記錄寫入數(shù)據(jù)庫。圖5-6:savePrebook()方法實(shí)現(xiàn)圖5.2業(yè)務(wù)員模塊:本網(wǎng)點(diǎn)排隊(duì)狀況查詢功能模塊算法描述在業(yè)務(wù)員模塊的本網(wǎng)點(diǎn)排隊(duì)狀況查詢功能中,主要是系統(tǒng)查詢對應(yīng)業(yè)務(wù)員所在網(wǎng)店所有預(yù)約單的數(shù)量。這里涉及一個問題就是業(yè)務(wù)員登陸問題,包括通過攔截器檢測是否有登錄用戶和實(shí)現(xiàn)登錄功能。在主頁點(diǎn)擊本網(wǎng)點(diǎn)排隊(duì)狀況查詢按鈕后,index.html通過超鏈接的方式轉(zhuǎn)跳控制器配置文件manage-struts.xml。首先攔截器ClerkLoginInterceptor檢查登錄狀態(tài),如果當(dāng)前沒有業(yè)務(wù)員登陸則轉(zhuǎn)跳登陸頁面login.html登陸。若已登陸則調(diào)用類DepartmentAction的findDepartment()方法,結(jié)果組織成deptsearchresult.jsp頁面顯示。<1>manage-struts.xml配置信息 以下為manage-struts.xml中本網(wǎng)點(diǎn)排隊(duì)狀況查詢功能的配置信息,包含了本網(wǎng)點(diǎn)查詢排隊(duì)和用戶登入登出的控制信息。本網(wǎng)點(diǎn)排隊(duì)由index.html調(diào)用,而用戶登入登出由login.html調(diào)用。<!--業(yè)務(wù)員登錄--> <actionname="clerkLogin"class="action.UserAction"method="clerkLogin"> <resultname="success"type="redirectAction"> <paramname="actionName">index</param> <paramname="namespace">/</param> </result> <resultname="wrong">/WEB-INF/jsp/msg.jsp</result> </action> <!--業(yè)務(wù)員登出--> <actionname="clerkLogout"class="action.UserAction"method="clerkLogout"> <resultname="success"type="redirectAction"> <paramname="actionName">index</param> <paramname="namespace">/</param> </result> </action><!--本網(wǎng)點(diǎn)排隊(duì)情況--> <actionname="findDeptQueu"class="action.DepartmentAction"method="findDepartment"> <!--登錄檢查攔截器--> <interceptor-refname="loginCheck"/> <interceptor-refname="defaultStack"/> <!--登錄檢查攔截器返回的值--> <resultname="noLogin">/html/login.html</result> <resultname="success">/WEB-INF/jsp/deptsearchresult.jsp</result> </action> <2>攔截器ClerkLoginInterceptor的實(shí)現(xiàn) 由于業(yè)務(wù)員需要有權(quán)限才可以查詢網(wǎng)點(diǎn)的排隊(duì)信息,因此設(shè)計(jì)了struts2框架中攔截器Interceptor檢查登錄信息。在查詢網(wǎng)點(diǎn)信息的時候會調(diào)用ClerkLoginInterceptor進(jìn)行攔截檢查currClerk,即當(dāng)前業(yè)務(wù)員是否為空。如果為空則說明當(dāng)?shù)隂]有用戶登錄,根據(jù)manage-struts.xml配置信息,需要轉(zhuǎn)跳login.html頁面進(jìn)行登錄。攔截器ClerkLoginInterceptor的實(shí)現(xiàn)如圖5-7所示:圖5-7:攔截器ClerkLoginInterceptor實(shí)現(xiàn)圖<3>UserAction類如果業(yè)務(wù)員沒有登錄則需要調(diào)用UserAction類的clerkLogin()和clerkLogout()的方法實(shí)現(xiàn)業(yè)務(wù)員的登入登出。其成員變量有Clerk這個類,負(fù)責(zé)記錄業(yè)務(wù)員信息。UserAction類接口如圖5-8所示。圖5-8:UserAction類接口圖clerkLogin()方法的實(shí)現(xiàn)如圖5-9所示,實(shí)現(xiàn)業(yè)務(wù)員登陸功能。圖5-9:ClerkLogin()方法實(shí)現(xiàn)圖<4>DepartmentAction類 DepartmentAction類是繼承于BaseAction類,在本模塊中,控制器需要調(diào)用方法findDepartment(),完成查詢網(wǎng)點(diǎn)排隊(duì)狀況功能。其主要接口如圖5-10所示。圖5-10:DepartmentAction類接口圖 findDepartment()方法如實(shí)現(xiàn)如圖5-11所示,其作用是找到當(dāng)前綁定的業(yè)務(wù)員(強(qiáng)制轉(zhuǎn)換為Clerk類),利用Clerk類的方法找到所有網(wǎng)點(diǎn),并查詢預(yù)約單數(shù)。圖5-11:findDepartment()方法實(shí)現(xiàn)圖5.3管理員模塊:業(yè)務(wù)員信息管理功能模塊算法描述在管理員模塊的業(yè)務(wù)員信息管理功能中,主要是對業(yè)務(wù)員進(jìn)行增加、編輯和刪除操作。這個業(yè)務(wù)需要管理員進(jìn)行操作,管理員有DBA進(jìn)行預(yù)先設(shè)置。這里和業(yè)務(wù)員操作一樣涉及登陸問題,需要通過攔截器檢測是否有登錄用戶和實(shí)現(xiàn)登錄功能。在主頁點(diǎn)擊本網(wǎng)點(diǎn)排隊(duì)狀況查詢按鈕后,index.html通過超鏈接的方式轉(zhuǎn)跳控制器配置文件manage-struts.xml。首先攔截器SuLoginInterceptor檢查登錄狀態(tài),如果當(dāng)前沒有管理員登陸則轉(zhuǎn)跳登陸頁面login.html登陸。若已登陸則調(diào)用類ClerkAction對應(yīng)方法,對業(yè)務(wù)員信息進(jìn)行管理。<1>manage-struts.xml配置信息 以下為manage-struts.xml中管理員登陸和業(yè)務(wù)員信息管理的配置信息。業(yè)務(wù)員信息管理由index.html調(diào)用,而用戶登入登出由login.html調(diào)用。 <!--超級管理員登錄--> <actionname="suLogin"class="action.UserAction"method="suLogin"> <resultname="success"type="redirectAction"> <paramname="actionName">index</param> <paramname="namespace">/</param> </result> <resultname="wrong">/WEB-INF/jsp/msg.jsp</result> </action> <!--超級管理員登出--> <actionname="suLogout"class="action.UserAction"method="suLogout"> <resultname="success"type="redirectAction"> <paramname="actionName">index</param> <paramname="namespace">/</param> </result> </action> <!--業(yè)務(wù)員管理--> <actionname="manageClerk_*"class="action.ClerkAction"method="{1}"> <!--登錄檢查攔截器--> <interceptor-refname="suCheck"/> <interceptor-refname="defaultStack"/> <!--登錄檢查攔截器返回的值--> <resultname="noLogin">/html/su_login.html</result> <!--查找所有的業(yè)務(wù)員并跳轉(zhuǎn)到管理業(yè)務(wù)員的頁面--> <resultname="allClerk">/WEB-INF/jsp/clerkManage.jsp</result> <!--查詢所有網(wǎng)點(diǎn)并跳轉(zhuǎn)到更新業(yè)務(wù)員頁面,填充下拉列表--> <resultname="toUpdatePage">/WEB-INF/jsp/clerkUpdate.jsp</result> <!--查詢所有網(wǎng)點(diǎn)并跳轉(zhuǎn)到添加業(yè)務(wù)員頁面,填充下拉列表--> <resultname="toAddPage">/WEB-INF/jsp/clerkAdd.jsp</result> <!--更新業(yè)務(wù)員,從表單取得數(shù)據(jù)并傳給DAO,完成后跳轉(zhuǎn)到管理業(yè)務(wù)員的頁面--> <resultname="update">/WEB-INF/jsp/clerkManage.jsp</result> <!--添加新業(yè)務(wù)員,從表單取得數(shù)據(jù)并傳給DAO,完成后跳轉(zhuǎn)到管理業(yè)務(wù)員的頁面--> <resultname="added">/WEB-INF/jsp/clerkManage.jsp</result> <!--刪除業(yè)務(wù)員,ajax請求方式,以json返回操作成功與否的狀態(tài)碼--> <resultname="deleted"type="json"> <paramname="root">status</param> </result> </action> <2>管理員登錄狀態(tài)的檢測以及登入登出管理員登錄狀態(tài)檢測的ClerkLoginInterceptor與業(yè)務(wù)員登陸狀態(tài)監(jiān)測的ClerkLoginInterceptor實(shí)現(xiàn)機(jī)制一樣,在此不做贅述。管理員的登陸則調(diào)用了UserActio
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2030年孕婦專用藥搬遷改造項(xiàng)目可行性研究報告
- 宿舍樓房屋課課程設(shè)計(jì)
- 2024-2030年全球及中國門塞警報器行業(yè)營銷策略及競爭對手分析報告
- 2024-2030年全球及中國花園綠籬機(jī)行業(yè)現(xiàn)狀動態(tài)及發(fā)展前景預(yù)測報告
- 2024-2030年全球及中國素肉行業(yè)營銷策略及銷售前景預(yù)測報告
- 2024-2030年全球及中國電纜潤滑劑行業(yè)銷售策略及盈利前景預(yù)測報告
- 2024-2030年全球及中國烘焙人造黃油行業(yè)銷售模式及營銷策略分析報告
- 2024-2030年全球及中國氮化鎵型功率元件行業(yè)供需前景與競爭格局預(yù)測報告
- 2024-2030年全球及中國普魯卡因青霉素行業(yè)競爭態(tài)勢及投資前景預(yù)測報告
- 2024-2030年全球及中國廢料裝載機(jī)行業(yè)發(fā)展動態(tài)及需求前景預(yù)測報告
- 學(xué)前兒童健康教育與活動指導(dǎo)(第2版)高職PPT完整全套教學(xué)課件
- 理論力學(xué)-上海交通大學(xué)中國大學(xué)mooc課后章節(jié)答案期末考試題庫2023年
- 風(fēng)景背后的地貌學(xué)-華中師范大學(xué)中國大學(xué)mooc課后章節(jié)答案期末考試題庫2023年
- 消防聯(lián)動測試記錄表
- 【教師必備】部編版四年級語文上冊第二單元【集體備課】
- 23所行政管理博士點(diǎn)學(xué)校之一
- 靜脈導(dǎo)管常見并發(fā)癥臨床護(hù)理實(shí)踐指南1
- 學(xué)校學(xué)生勞動教育評價表
- apt攻擊專項(xiàng)應(yīng)急預(yù)案
- 小學(xué)三年級秋季學(xué)期《道德與法治》(統(tǒng)編版)學(xué)習(xí)任務(wù)單(全冊匯總)
- 奧迪A7L汽車說明書
評論
0/150
提交評論