版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
北京郵電大學(xué)畢業(yè)設(shè)計(jì)北京郵電大學(xué)畢業(yè)設(shè)計(jì)PAGE\*ROMANPAGE\*ROMANIV基于java的藥店管理系統(tǒng)摘要InternetIT產(chǎn)業(yè)在市場(chǎng)競(jìng)爭(zhēng)這使得對(duì)數(shù)據(jù)庫(kù)的進(jìn)一步開(kāi)發(fā)和利用顯得尤為迫切。增長(zhǎng),藥店管理系統(tǒng)成為市場(chǎng)常用的系統(tǒng)之一。它最主要的特點(diǎn)是能夠?qū)崟r(shí)的和準(zhǔn)確的合理的分配資源。同時(shí)系統(tǒng)將所有的藥品信息透明化,不會(huì)讓廣大群眾花冤枉錢(qián)。Spring,Hibernate,Struts流行框架技術(shù)來(lái)對(duì)業(yè)務(wù)邏輯和數(shù)據(jù)持久化模塊設(shè)計(jì)結(jié)束后的整合。此系統(tǒng)流程相對(duì)清晰,功能上主要完成對(duì)藥品的管理和各種操作,同時(shí)也實(shí)現(xiàn)了對(duì)系統(tǒng)管理員的增刪操作。通過(guò)后期系統(tǒng)的不斷完善和改造,優(yōu)化界面并且修改系統(tǒng)漏洞,基本實(shí)現(xiàn)了各個(gè)功能模塊。關(guān)鍵詞:藥店管理系統(tǒng),Web,java,數(shù)據(jù)庫(kù)Withtherapiddevelopmentofmodernscienceandtechnology,computertechnologyhaspenetratedintobrotherfield,becometheWiththerapiddevelopmentofmodernscienceandtechnology,computertechnologyhaspenetratedintobrotherfield,becomethenecessarytoolsforvariousindustries,especiallytheInternettechnologypromotionandtheestablishmentoftheinformationhighway,makeITindustryinmarketcompetitionmoreshowsitsuniqueadvantages,intotheinformationtimes,ahugedatainformationwaitingforprocessingtheprocessingandtransmission,thismakesthefurtherdevelopmentofthedatabaseofbooksanduseisparticularlyurgent.Alongwiththedevelopmentofmedicineindustryrulesscaleexpandingconstantly,drugdramaticallyincrease,allkindsofinformationaboutthedrugsalsoincreaseexponentially.Medicalmanagementsystemonthemarketisthemostcommonlyusedoneofthesystem.Thesubjectofthemedicinemanagementsystem,realizethewholeprocessofdrugclassificationmanagementforpatientswithpresentsallpharmaceuticalofdetailedinformation,thesystemrealizedtheuseofcomputernetworkinalldifferentkindsofinformationsharingdrugs,andimprovethepatientintheaccuracyoftheselectedmedicine,forhospitalandsolvedtheamountofpressure.Atthesametimealsoreasonableallocationofresources.Andthesystemwillbeallofthedruginformationtransparency,won'tletthepeopleinthebeautifulinjustice.ThissystemusingaSpring,Hibernate,Struts populartechnologyframeworkbusinesslogicanddatapersistentoperation,inthedivisionandthedeterminationneededforeachmodulemoduleoftherealizationofthefunction,thefunctionofeachmodulebetweenthecoordinationandinformationcommunication,moduledesigninaftertheendoftheintegration.Processofthesystemisrelativelyclear,thesystemfunctionmainlycompletesthemanagementofmedicaldrugs,aswellasimplementationofthesystemadministratortoaddordeleteoperation.Throughthesystemconstantlyimprovesandreformsfinally,optimizingeachfunctionalmodulehasbeenthetheinterfacedisplay,changingthesystemvulnerabilities,Keywords:Medicinemanagementsystem,Web,java,database目 錄摘要 IAbstract II緒 論 1第一章 系統(tǒng)開(kāi)發(fā)背景 2開(kāi)發(fā)背景 2我國(guó)藥店管理系統(tǒng)發(fā)展現(xiàn)狀 2不同層面藥店的發(fā)展現(xiàn)狀 2藥店進(jìn)銷(xiāo)存管理的發(fā)展現(xiàn)狀 3第二章 系統(tǒng)相關(guān)技術(shù) 4設(shè)計(jì)思想 4開(kāi)發(fā)工具 4java簡(jiǎn)介 4struts介紹 5spring介紹 5Hibernate介紹 6安裝mysql 7第三章 系統(tǒng)分析 9需求分析 9可行性分析 9技術(shù)可行性 9經(jīng)濟(jì)可行性 9管理可行性 10法律可行性 10系統(tǒng)E-R圖 10數(shù)據(jù)流程分析 12數(shù)據(jù)字典 13系統(tǒng)用例圖 16數(shù)據(jù)庫(kù)表 17第四章 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) 19系統(tǒng)功能設(shè)計(jì) 19系統(tǒng)功能界面介紹 19系統(tǒng)登錄頁(yè)面 20系統(tǒng)首頁(yè)頁(yè)面 20藥品管理頁(yè)面 21類(lèi)別管理頁(yè)面 23藥品購(gòu)買(mǎi)頁(yè)面 24銷(xiāo)售管理頁(yè)面 27進(jìn)貨/需求管理頁(yè)面 28系統(tǒng)設(shè)置頁(yè)面 28第五章 系統(tǒng)測(cè)試 30系統(tǒng)測(cè)試原理及測(cè)試原則 30測(cè)試的原理 30系統(tǒng)測(cè)試原則 31系統(tǒng)測(cè)試的方法 31測(cè)試項(xiàng)目說(shuō)明 31結(jié) 論 36致 謝 37參考文獻(xiàn) 38外文原文 39外文譯文 47北京郵電大學(xué)畢業(yè)設(shè)計(jì)北京郵電大學(xué)畢業(yè)設(shè)計(jì)PAGEPAGE9緒 論濟(jì)效益做出了顯著的貢獻(xiàn)。就藥店而言,特別是一些中小型的藥店,在信息化過(guò)程中的步伐要落后于大中型藥第一章 系統(tǒng)開(kāi)發(fā)背景開(kāi)發(fā)背景也的發(fā)展,所以網(wǎng)上藥店管理是勢(shì)在必行。效的處理方式和管理方法,因此加快藥店的信息化進(jìn)程是必不可少的。我國(guó)藥店管理系統(tǒng)發(fā)展現(xiàn)狀不同層面藥店的發(fā)展現(xiàn)狀順應(yīng)了零售行業(yè)對(duì)信息化的要求,為商業(yè)管理信息系統(tǒng)提供了系統(tǒng)全面的技術(shù)解決方隨著信息化的快速發(fā)展,以及激烈的市場(chǎng)競(jìng)爭(zhēng),各藥店也將在信息化上下功夫,以高效率、低成本立足市場(chǎng),獲得更多的利潤(rùn)。藥店進(jìn)銷(xiāo)存管理的發(fā)展現(xiàn)狀POS店的效益,并提高日常運(yùn)營(yíng)效率。第二章 系統(tǒng)相關(guān)技術(shù)設(shè)計(jì)思想時(shí)系統(tǒng)將所有的藥品信息透明化。WEBWEB開(kāi)發(fā)工具java簡(jiǎn)介JavaSunMicrosystems19955JavaJava向因特網(wǎng)的所有特點(diǎn)。面向?qū)ο螅浩鋵?shí)是現(xiàn)實(shí)世界模型的自然延伸?,F(xiàn)實(shí)世界中任何實(shí)體都可以看過(guò)程式編程語(yǔ)言為:程序=算法+數(shù)據(jù);面向?qū)ο缶幊陶Z(yǔ)言為:程序=對(duì)象+消息。所有面向?qū)ο缶幊陶Z(yǔ)言都支持三個(gè)概念:封裝、多態(tài)性和繼承,Java也不例外?,F(xiàn)實(shí)世界。所謂封裝,就是用一個(gè)自主式框架把對(duì)JavaJavaJava上解釋執(zhí)行,只要經(jīng)過(guò)簡(jiǎn)單的粘貼和復(fù)制就行了,不影響程序的效果Java(TM),所以“砂箱”安全性模型對(duì)它們不起限制作用。從安全性的觀點(diǎn)看,Java應(yīng)用程Java程序,您必須對(duì)集成文件系統(tǒng)中的類(lèi)文件具有權(quán)限。程序一旦啟動(dòng),它就在該用戶(hù)權(quán)限控制下運(yùn)行。您可以使用沿用權(quán)限來(lái)訪問(wèn)具有運(yùn)行程序的用戶(hù)的權(quán)限和程序擁有者權(quán)限的對(duì)象權(quán)限臨時(shí)地將用戶(hù)原先無(wú)權(quán)訪問(wèn)的對(duì)象的權(quán)限授予用戶(hù)。支持多線(xiàn)程技術(shù),就是多個(gè)線(xiàn)程并行機(jī)制,多線(xiàn)程是Java個(gè)重要方法,特別有利于在程序中實(shí)現(xiàn)并發(fā)任務(wù).Java提供Thread線(xiàn)程類(lèi),的并發(fā)機(jī)制.然而,,因而,而在進(jìn)行臨界資源分配時(shí)有兩方面需要考慮,即安全性和公平性.文中首先討論了多線(xiàn)程并發(fā)系統(tǒng)中的安全性與公平性問(wèn)題,指出安全性與公平性在并發(fā)系統(tǒng)中訪問(wèn)臨界資源時(shí)的重要性.隧道的實(shí)例,演示各種條件下的行駛情況來(lái)進(jìn)一步說(shuō)明該問(wèn)題.JavaEE(JavaPlatform,EnterpriseEdition)sun公司推出的企業(yè)級(jí)應(yīng)用程序版本。這個(gè)版本以前稱(chēng)為J2EEJava應(yīng)用程序。JavaEEJavaSEWeb服務(wù)、組件模型、管理和通信API,可以用來(lái)實(shí)現(xiàn)企業(yè)級(jí)的面向服務(wù)體系結(jié)構(gòu)(service-orientedarchitecture,SOA)Web2.0JavaEEJDBC(JavaDatabaseConnectivity)提供連接各種關(guān)系數(shù)據(jù)庫(kù)的統(tǒng)一接口,據(jù)庫(kù)提供統(tǒng)一訪問(wèn),它由一組用Java語(yǔ)言編寫(xiě)的類(lèi)和接口組成。JDBC為工具/JavaAPI編寫(xiě)數(shù)據(jù)庫(kù)應(yīng)用程序,同時(shí),JDBC也是個(gè)商標(biāo)名。struts介紹Struts對(duì)Model,View和Controller都提供了對(duì)應(yīng)的組件。ActionServletStrutsActionServletJSP頁(yè)面顯示。ModelActionFormJavaBeanActionFormActionFormActionServletAction,ActionActionForm里面的請(qǐng)求參數(shù)處理用戶(hù)的請(qǐng)求。JavaBean括數(shù)據(jù)庫(kù)訪問(wèn)等。ViewJSP(HTML、PHP……)實(shí)現(xiàn)。Struts提供了豐富的標(biāo)簽庫(kù),通過(guò)標(biāo)簽庫(kù)可以減少腳本的使用,自定義的標(biāo)簽庫(kù)可ModelJSP部分。Controller組件:Controller組件有兩個(gè)部分組成——系統(tǒng)核心控制器,業(yè)務(wù)邏輯控制器。系統(tǒng)核心ActionServletStrutsHttpServletServletHTTP請(qǐng)求,然后根據(jù)用戶(hù)請(qǐng)求決ModelAction部分。spring介紹Spring7Spring模塊構(gòu)建在核beanSpring框架的每個(gè)模塊(或組件)功能如下:核心容器:核心容器提供Spring框架的基本功能。核心容器的主要組件BeanFactory,它是工廠模式的實(shí)現(xiàn)。BeanFactory(IOC)用程序的配置和依賴(lài)性規(guī)范與實(shí)際的應(yīng)用程序代碼分開(kāi)。Spring上下文:SpringSpring框架提供上下文信息。Spring上下文包括企業(yè)服務(wù),例如JNDI、EJB、電子郵件、國(guó)際化、校驗(yàn)和調(diào)度功能。SpringAOP:通過(guò)配置管理特性,SpringAOP模塊直接將面向方面的編程功能集SpringSpringAOPSpringAOPSpring的應(yīng)用程序中的對(duì)象提供了事務(wù)管理服務(wù)。通過(guò)使用SpringEJB組件,就可以將聲明性事務(wù)管理集成到應(yīng)用程序中。SpringDAO:JDBCDAO極大地降低了需要編寫(xiě)的異常代碼數(shù)量(例如打開(kāi)和關(guān)閉連接。SpringDAOJDBCDAO異常層次結(jié)構(gòu)。SpringORMORMJDO、HibernateiBatisSQLMapSpringDAO異常層次結(jié)構(gòu)。SpringWeb上下文模塊建立在應(yīng)用程序上下文模塊之上,為基于JakartaStrutsWeb模塊還簡(jiǎn)化了處理多部分請(qǐng)求以及將請(qǐng)求參數(shù)綁定到域?qū)ο蟮墓ぷ鳌pringMVC框架:MVC框架是一個(gè)全功能的構(gòu)建 Web應(yīng)用程序的MVC現(xiàn)。通過(guò)策略接口,MVC框架變成為高度可配置的,MVC容納了大量視圖技術(shù),中包括JSPTilesiText和POISpring框架的功能可以用在任何J2EE務(wù)器中,大多數(shù)功能也適用于不受管理的環(huán)境。Spring的核心要點(diǎn)是:支持不綁定到特定J2EE服務(wù)的可重用業(yè)務(wù)和數(shù)據(jù)訪問(wèn)對(duì)象。毫無(wú)疑問(wèn),這樣的對(duì)象可以在不同J2EE環(huán)境(Web或EJB、獨(dú)立應(yīng)用程序、測(cè)試環(huán)境之間重用。Springorg.springframework.beans包,它的設(shè)計(jì)目標(biāo)是與JavaBean的底層中介。下一個(gè)最高級(jí)抽象是BeanFactoryBeanFactoryBeanFactory支持Singleton是默認(rèn)的也是最常用的對(duì)象模型。對(duì)于無(wú)狀態(tài)服務(wù)對(duì)象很理想。beanSpringIOCIOCSpring框架使JavaBean屬性和配置數(shù)據(jù)來(lái)指出必須設(shè)置的依賴(lài)關(guān)系。Hibernate介紹HibernateJavaSQL的關(guān)系模型結(jié)構(gòu)中去,為面向?qū)ο蟮念I(lǐng)域模型到傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)的映射,提供了一個(gè)使用方便的框架。Hibernate不僅Java類(lèi)到數(shù)據(jù)庫(kù)表的映射(JavaSQL數(shù)據(jù)類(lèi)型的映射SQLJDBC處理數(shù)HibernateJDBCJava程序員可以隨心所欲的使用對(duì)象編程思維來(lái)操縱數(shù)據(jù)庫(kù)。HibernateJDBC的場(chǎng)合,它JavaServlet/JSPWeb意義的是,HibernateEJB(EnterpriseJavaBeansJava應(yīng)用于企業(yè)計(jì)算的框架)J2EECMP,完成數(shù)據(jù)持久化的重任。Hibernate的優(yōu)缺點(diǎn)是Hibernate使用Java反射機(jī)制而不是字節(jié)碼增強(qiáng)程序來(lái)實(shí)現(xiàn)透明性。Hibernate的性能非常好,因?yàn)樗莻€(gè)輕量級(jí)框架。映射的靈活性很出色。它支持各種關(guān)系數(shù)據(jù)庫(kù),從一對(duì)一到多對(duì)多的各種復(fù)雜關(guān)系。缺點(diǎn)是Hibernate限制您所使用的對(duì)象模型。例如,一個(gè)持久性類(lèi)不能映射到多個(gè)表。mysql1、運(yùn)行mysql安裝文件。2Next
默認(rèn)完全Custom(用戶(hù)自定義”三個(gè)選項(xiàng),我們選擇“CustoDeveloperComponents(開(kāi)發(fā)者部分”上左鍵單擊,選擇“Thisfeature,andallsubfeatures,willbeinstalledonlocalharddrive.MySQLServer(mysql服務(wù)器ClientPrograms(mysql客戶(hù)端程序)“Documentatio(文檔”也如此操作,以保證安裝所有文件。3"C:\ProgramFiles\MySQL\MySQL5.5\",如:也可以修改為:"D:mysql\"。4、現(xiàn)在開(kāi)始安裝最后的配置,點(diǎn)Next,選擇服務(wù)器類(lèi)型DeveloperMachin(開(kāi)發(fā)測(cè)試類(lèi),mysql占用很少資源ServerMachine(服務(wù)器類(lèi)型,mysql占用較多資源DedicatedMySQLServerMachine(專(zhuān)門(mén)的數(shù)據(jù)庫(kù)服務(wù)器,mysql占用所有可用資源ServerMachin滿(mǎn)。5NextmysqlMultifunctionalDatabase(通用多功能型,好TransactionalDatabaseOnly(服務(wù)器類(lèi)型,專(zhuān)注于事務(wù)處理,一般MyISAMnon-transactiona,隨自己的用途而選擇了,我這TransactionalDatabaseOnlNext”繼續(xù)。6InnoDBTablespaceInnoDB數(shù)據(jù)庫(kù)文件選擇一個(gè)存儲(chǔ)空間,直接按“Next”繼續(xù)7、選擇您的網(wǎng)站的一般mysql訪問(wèn)量,同時(shí)連接的數(shù)目,“DecisionSupport(DSS)/OLA(20個(gè)左右OnlineTransactionProcessing(OLT)500個(gè)左右、Manual Setting(OnlineTransactionProcessing(OLTPNext”繼續(xù)8TCP/IP連接,設(shè)定端口,如果不啟用,就只能在自己的機(jī)器上訪問(wèn)mysqlNumber:33069、對(duì)mysql默認(rèn)數(shù)據(jù)庫(kù)語(yǔ)言編碼進(jìn)行設(shè)置,第一個(gè)是西文編碼,第二個(gè)是多字節(jié)utf8CharacterSetgbgb231gbkgb2312mysqlSETNAMESGBK(GBK其它值,視這里的設(shè)置而定,就可以正常的使用漢字(或其它文字)了,否則不能正Next”繼續(xù)10mysqlwindowsService名稱(chēng)mysqlbinWindowsPAT(下的文件,而不用指出目錄名,比如連接mysql.exe-uusername-ppassword了,不用指出mysql.exe的完整地址,很方便,我這里全部打上了勾,Service不變。按“Next”繼續(xù)。1root用戶(hù)(超級(jí)管理)的密碼(默認(rèn)為空Newrootpassword”如果要修改,就在此填入新密碼(如果是重裝,并且之前已經(jīng)設(shè)置了密碼,在這里更改密碼可能會(huì)出錯(cuò),請(qǐng)留空,并將“ModifySecuritySettings安裝配置完成后另行修改密碼Confir(再輸一遍Enablerootaccessfromroot就不要勾上,如果要方便,就勾上它CreateAnAnonymous新建一設(shè)置完畢,按“Next”繼續(xù)。12、最后一個(gè)Next再加Execute,可以看到上面的步驟全部完成,安裝完成。13MySQLWincmd后-uroot-p"為空,所以直接再按回車(chē)即可。第三章 系統(tǒng)分析需求分析21成本、擴(kuò)大經(jīng)營(yíng)規(guī)模,成為藥店?duì)I業(yè)者努力追求的目標(biāo)??尚行苑治黾夹g(shù)可行性Struts2,Spring,HibernateSSH其中:表現(xiàn)層使用HTML,jsp,JavaScriptStruts2SprinHibernate經(jīng)濟(jì)可行性經(jīng)濟(jì)可行性研究是對(duì)組織的經(jīng)濟(jì)現(xiàn)狀和投資能力進(jìn)行分析,對(duì)系統(tǒng)建設(shè)運(yùn)行和維護(hù)費(fèi)用進(jìn)行估算,對(duì)系統(tǒng)建成后可能取得的社會(huì)和經(jīng)濟(jì)效益進(jìn)行估計(jì)。由于本系統(tǒng)是為工作者提供方便快捷網(wǎng)絡(luò)化辦公內(nèi)容,登陸本系統(tǒng),即可使用系統(tǒng),系統(tǒng)成本主要集中在系統(tǒng)軟件的開(kāi)發(fā)上,當(dāng)系統(tǒng)投入運(yùn)行后可以為人們節(jié)約大量的時(shí)間和精力。所帶來(lái)的方便及效益遠(yuǎn)遠(yuǎn)大于系統(tǒng)軟件的開(kāi)發(fā)成本。在經(jīng)濟(jì)上完全可行。北京郵電大學(xué)畢業(yè)設(shè)計(jì)管理可行性采用模塊化編程,降低了錯(cuò)誤產(chǎn)生次數(shù),提高了開(kāi)發(fā)效率。對(duì)于完成同樣功能的進(jìn)程,法律可行性1、所有技術(shù)資料都為合法。2、開(kāi)發(fā)過(guò)程中不存在知識(shí)產(chǎn)權(quán)問(wèn)題。3、未抄襲任何系統(tǒng),不存在侵犯版權(quán)問(wèn)題。4、開(kāi)發(fā)過(guò)程中未涉及任何法律責(zé)任。系統(tǒng)E-RE-RE-R圖如(3-1)所示。圖3-1系統(tǒng)E-R圖10北京郵電大學(xué)畢業(yè)設(shè)計(jì)北京郵電大學(xué)畢業(yè)設(shè)計(jì)PAGEPAGE16依據(jù)數(shù)據(jù)庫(kù)設(shè)計(jì)的方法,可按照本系統(tǒng)數(shù)據(jù)特點(diǎn)設(shè)計(jì)相應(yīng)的實(shí)體關(guān)系,分別如(圖3-2)(3-1.tb-category的實(shí)體圖idname
tb-category
createtimedescription圖3-2類(lèi)別信息實(shí)體圖tb-medicine實(shí)體圖nameid
medNocategoryIdphotoPath
reqCoun
tb-medicin
price
factoryAdddescriptiont medCounte圖3-3藥品實(shí)體圖tb-selldetailididSellTotalsellNameuseridselldetailsellPricemedidsellCountsellTime圖3-4藥品銷(xiāo)售實(shí)體圖tb-user實(shí)體圖ididusernameUsercreateTimepassword圖3-5管理員實(shí)體圖數(shù)據(jù)流程分析數(shù)據(jù)流程分析,即把數(shù)據(jù)在組織(或原系統(tǒng))內(nèi)部的流動(dòng)情況抽象地獨(dú)立出來(lái),舍去了具體組織機(jī)構(gòu)、信息載體、處理工作、物資、材料等,單從數(shù)據(jù)流動(dòng)過(guò)程來(lái)考查實(shí)際業(yè)務(wù)的數(shù)據(jù)處理模式。數(shù)據(jù)流程分析主要包括對(duì)信息的流動(dòng)、傳遞、處理、存儲(chǔ)等的分析。數(shù)據(jù)流程分析的目的就是要發(fā)現(xiàn)和解決數(shù)據(jù)流通中的問(wèn)題。(DataFlow)(Process)和數(shù)據(jù)源(數(shù)據(jù)終點(diǎn))。數(shù)據(jù)流(DataFlow):個(gè)數(shù)據(jù)流可以是記錄、組合項(xiàng)或基本項(xiàng)。處理理的數(shù)據(jù)流為該處理的輸入數(shù)據(jù),離開(kāi)處理的數(shù)據(jù)流為該處理的輸出數(shù)據(jù).以指向或離開(kāi)數(shù)據(jù)存儲(chǔ)的箭頭表示。數(shù)據(jù)源及數(shù)據(jù)終點(diǎn):表示數(shù)據(jù)的來(lái)源或數(shù)據(jù)的去向,可以是一個(gè)組織或人員,其圖形符號(hào)用平行四邊形表示。數(shù)據(jù)流程圖符號(hào)說(shuō)明:表示外部實(shí)體; 表示數(shù)據(jù)的處理過(guò)程表示數(shù)據(jù)存儲(chǔ); 表示數(shù)據(jù)流的方向根據(jù)上面的分析我們可以對(duì)系統(tǒng)畫(huà)出如(圖3-6)所示的頂層數(shù)據(jù)流圖。管理管理員0藥品信息管理系統(tǒng)圖3-6系統(tǒng)頂層數(shù)據(jù)流圖第1層數(shù)據(jù)流圖是在頂層上的細(xì)分,從整體考慮數(shù)據(jù)流動(dòng)及流向,如(圖3-7)所示。信息的更新信息的更新數(shù)據(jù)更新藥品信息藥品信息藥品信息存儲(chǔ)藥品信息顯示信息管理員管理員信息管理員信息處理信息更新管理員信息管理員信息存儲(chǔ)購(gòu)買(mǎi)、銷(xiāo)售處理購(gòu)買(mǎi)信息 生成銷(xiāo)售信息信息存儲(chǔ)處理后的購(gòu)買(mǎi)信息圖3-7系統(tǒng)第1層數(shù)據(jù)流圖數(shù)據(jù)字典素條目、數(shù)據(jù)流、處理過(guò)程、數(shù)據(jù)存儲(chǔ)和外部實(shí)體。數(shù)據(jù)元素條目如下所示:名稱(chēng):管理員編號(hào)長(zhǎng)度:20有關(guān)數(shù)據(jù)結(jié)構(gòu):管理員信息表有關(guān)編碼說(shuō)明:Li XXX編號(hào)管理員代號(hào)數(shù)據(jù)結(jié)構(gòu)條目名稱(chēng):管理員信息說(shuō)明:創(chuàng)建管理員信息記錄的數(shù)據(jù)結(jié)構(gòu):用戶(hù)名Id數(shù)據(jù)結(jié)構(gòu)條目名稱(chēng):管理員信息說(shuō)明:創(chuàng)建管理員信息記錄的數(shù)據(jù)結(jié)構(gòu):用戶(hù)名Id密碼建立時(shí)間有關(guān)數(shù)據(jù)流、數(shù)據(jù)存儲(chǔ):管理員信息名稱(chēng):藥品信息結(jié)構(gòu):藥品編號(hào)類(lèi)別編號(hào)價(jià)格庫(kù)存廠址描述藥品圖片有關(guān)數(shù)據(jù)流、數(shù)據(jù)存儲(chǔ):藥品信息數(shù)據(jù)流條目如下所示:數(shù)據(jù)流條目數(shù)據(jù)流名稱(chēng):藥品信息維護(hù)簡(jiǎn)述:管理員對(duì)藥品信息維護(hù)數(shù)據(jù)來(lái)源:藥品信息數(shù)據(jù)流向:藥品信息的維護(hù)結(jié)果 數(shù)據(jù)流條目數(shù)據(jù)流名稱(chēng):藥品信息維護(hù)簡(jiǎn)述:管理員對(duì)藥品信息維護(hù)數(shù)據(jù)來(lái)源:藥品信息數(shù)據(jù)流向:藥品信息的維護(hù)結(jié)果數(shù)據(jù)流條目數(shù)據(jù)流名稱(chēng):進(jìn)貨信息管理數(shù)據(jù)流向:藥品的進(jìn)貨管理結(jié)果數(shù)據(jù)流條目數(shù)據(jù)流名稱(chēng):藥品銷(xiāo)售管理簡(jiǎn)述:管理員對(duì)藥品銷(xiāo)售情況管理數(shù)據(jù)來(lái)源:藥品銷(xiāo)售信息數(shù)據(jù)流向:藥品銷(xiāo)售信息的管理結(jié)果數(shù)據(jù)流條目數(shù)據(jù)流名稱(chēng):藥品銷(xiāo)售管理簡(jiǎn)述:管理員對(duì)藥品銷(xiāo)售情況管理數(shù)據(jù)來(lái)源:藥品銷(xiāo)售信息數(shù)據(jù)流向:藥品銷(xiāo)售信息的管理結(jié)果數(shù)據(jù)流條目數(shù)據(jù)流名稱(chēng):藥品庫(kù)存管理簡(jiǎn)述:管理員對(duì)藥品庫(kù)存情況管理數(shù)據(jù)來(lái)源:藥品庫(kù)存信息數(shù)據(jù)流向:藥品庫(kù)存信息的查詢(xún)結(jié)果數(shù)據(jù)存儲(chǔ)條目如下所示:數(shù)據(jù)存儲(chǔ)條目名稱(chēng):管理員信息說(shuō)明:存儲(chǔ)管理員的相關(guān)信息結(jié)構(gòu):用戶(hù)名數(shù)據(jù)存儲(chǔ)條目名稱(chēng):管理員信息說(shuō)明:存儲(chǔ)管理員的相關(guān)信息結(jié)構(gòu):用戶(hù)名密碼Id建立時(shí)間有關(guān)的數(shù)據(jù)流:管理員信息請(qǐng)求管理→管理員信息管理數(shù)據(jù)存儲(chǔ)條目名稱(chēng):藥品信息結(jié)構(gòu):藥品編號(hào)藥品名稱(chēng)價(jià)格廠址有關(guān)的數(shù)據(jù)流:藥品信息管理請(qǐng)求→藥品信息管理處理功能條目如下所示:處理功能條目名稱(chēng):藥品信息維護(hù)處理功能條目名稱(chēng):藥品信息維護(hù)正確傳送處理邏輯:1.是否有漏填2.數(shù)據(jù)要求是否匹配處理功能條目名稱(chēng):進(jìn)貨登記輸入數(shù)據(jù):進(jìn)貨表中各字段輸出數(shù)據(jù):是否登記成功,進(jìn)貨藥品正確傳送處理邏輯:1.是否有漏填2.數(shù)據(jù)要求是否匹配包含的數(shù)據(jù)結(jié)構(gòu):管理員信息處理功能條目名稱(chēng):庫(kù)存查詢(xún)輸入數(shù)據(jù):藥品編號(hào),藥品名稱(chēng)輸出數(shù)據(jù):查詢(xún)的藥品庫(kù)存信息正確顯示處理邏輯:庫(kù)存報(bào)警處理功能條目名稱(chēng):庫(kù)存查詢(xún)輸入數(shù)據(jù):藥品編號(hào),藥品名稱(chēng)輸出數(shù)據(jù):查詢(xún)的藥品庫(kù)存信息正確顯示處理邏輯:庫(kù)存報(bào)警處理功能條目名稱(chēng):銷(xiāo)售登記輸入數(shù)據(jù):銷(xiāo)售表中各字段輸出數(shù)據(jù):是否登記成功,進(jìn)貨藥品正確傳送處理邏輯:1.是否有漏填2.數(shù)據(jù)要求是否匹配外部實(shí)體條目名稱(chēng):管理員說(shuō)明:管理員外部實(shí)體條目名稱(chēng):管理員說(shuō)明:管理員輸入數(shù)據(jù)流:管理員賬號(hào),密碼輸出數(shù)據(jù)流:系統(tǒng)管理員管理個(gè)數(shù):1個(gè)系統(tǒng)用例圖登錄系統(tǒng)添加商品<<extends>><<extends>>商品登錄系統(tǒng)添加商品<<extends>><<extends>>商品刪除商品<<extends>><<uses>>類(lèi)別添加修改商品<<uses>><<uses>>銷(xiāo)售管理<<uses>><<uses>>添加進(jìn)貨<<uses>><<uses>><<extends>>添加會(huì)員系統(tǒng)管理管理員<<extends>>退出系統(tǒng)修改密碼圖3-8管理員用例圖北京郵電大學(xué)畢業(yè)設(shè)計(jì)數(shù)據(jù)庫(kù)表管理員信息表:存放管理員信息的表,管理員的用戶(hù)名和密碼。藥品信息表:用來(lái)存儲(chǔ)藥品相關(guān)信息,包括藥品編號(hào),藥品名稱(chēng),產(chǎn)地,藥品類(lèi)型等。銷(xiāo)售信息表:用來(lái)存儲(chǔ)藥品銷(xiāo)售相關(guān)信息,包括藥品編號(hào),藥品名稱(chēng),藥品價(jià)格,藥品數(shù)量,藥品銷(xiāo)售時(shí)間,操作人員,藥品總額。庫(kù)存信息表:用來(lái)存儲(chǔ)庫(kù)存相關(guān)信息,包括庫(kù)存編號(hào),庫(kù)存量,庫(kù)存審核,庫(kù)存時(shí)間等?,F(xiàn)將數(shù)據(jù)庫(kù)表結(jié)構(gòu)介紹如下:藥品類(lèi)別表:藥品信息表:
圖3-9藥品類(lèi)別表銷(xiāo)售信息表:
圖3-10藥品信息表圖3-11銷(xiāo)售信息表17北京郵電大學(xué)畢業(yè)設(shè)計(jì)類(lèi)型lintI類(lèi)型lintI長(zhǎng)度 十進(jìn)位:e :I111lol允許空,I 口 1I ::1皖-rr』a18北京郵電大學(xué)畢業(yè)設(shè)計(jì)第四章 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)系統(tǒng)功能設(shè)計(jì)流程圖及處理過(guò)程。圖4-1系統(tǒng)功能模塊圖管理員主要是對(duì)藥店管理系統(tǒng)進(jìn)行管理:系統(tǒng)用戶(hù)管理:管理藥店的管理員信息,可以添加、修改、刪除用戶(hù)信息。藥品類(lèi)別管理:管理藥店的藥品類(lèi)別信息,可以進(jìn)行添加、修改和刪除操作。刪除操作。清除、結(jié)賬的功能操作。進(jìn)貨信息查詢(xún):輸入查詢(xún)號(hào),即可以查看到貨物,然后選擇是否完成進(jìn)貨。銷(xiāo)售信息管理:可以查看所有藥品的銷(xiāo)售信息,今日明細(xì),也可以按照日期查詢(xún)。藥品進(jìn)貨管理:進(jìn)行日常的藥品進(jìn)貨登記,可以添加所需進(jìn)貨藥品數(shù)量。庫(kù)存信息瀏覽:此頁(yè)面顯示所有的庫(kù)存藥品信息,可以按照條件進(jìn)行查詢(xún)。系統(tǒng)功能界面介紹能界面。19北京郵電大學(xué)畢業(yè)設(shè)計(jì)系統(tǒng)登錄頁(yè)面本系統(tǒng)的登錄頁(yè)面如(圖4-2)所示。圖4-2系統(tǒng)登錄頁(yè)面(4-3)所示。開(kāi) 始登錄失敗
接收登錄信息庫(kù)否 數(shù)據(jù)是否正是登錄成功結(jié) 束圖4-3系統(tǒng)的登錄流程圖系統(tǒng)首頁(yè)頁(yè)面進(jìn)入系統(tǒng)后,可以看到左面的各個(gè)功能模塊的導(dǎo)航,具體界面如(圖4-4)所示。20北京郵電大學(xué)畢業(yè)設(shè)計(jì)圖4-4系統(tǒng)管理界面藥品管理頁(yè)面添加藥品,管理員可以在此輸入藥品的編號(hào),從而進(jìn)行下一步更詳細(xì)的藥品信息的添加,如果輸入編號(hào)之后已經(jīng)存在藥品,還可以修改原有藥品信息,如(圖4-5)示。圖4-5添加藥品頁(yè)面21北京郵電大學(xué)畢業(yè)設(shè)計(jì)模塊流程圖如(4-7)
圖4-6添加藥品結(jié)束開(kāi) 始添加失敗 添加信息將信息更新到數(shù)據(jù)庫(kù)中否 更新是否成是添加成功結(jié) 束圖4-7添加藥品流程圖式展示出來(lái),在此處可以對(duì)藥品進(jìn)行進(jìn)貨、修改、購(gòu)買(mǎi)的操作。如(4-8)所示。22五一i1五一i1心,.,歡飽量壹臣藥量壹系統(tǒng)! tim置置比攸由凳曾冒哩購(gòu)羞ii盧,歡硬量:壹醫(yī)朽蓄電彖扶,歡硬量:壹醫(yī)朽蓄電彖扶I佐侵礦酌叩i·逼量阮:阮汗九:1宜i奐攫雪暨.圖4-9庫(kù)存查詢(xún)頁(yè)面類(lèi)別管理頁(yè)面在此添加藥品的類(lèi)別和描述,即可以完成藥品類(lèi)別的添加,如(圖4-10)所示。23北京郵電大學(xué)畢業(yè)設(shè)計(jì)圖4-10類(lèi)別添加頁(yè)面在添加藥品類(lèi)別之后,可以查看藥品類(lèi)別,并且顯示類(lèi)別的具體信息,如(圖4-11)所示。圖4-11查看藥品類(lèi)別藥品購(gòu)買(mǎi)頁(yè)面確認(rèn)信息后可以繼續(xù)購(gòu)物也可以結(jié)賬完成購(gòu)買(mǎi),如(4-12)所示。24北京郵電大學(xué)畢業(yè)設(shè)計(jì)圖4-12選購(gòu)藥品頁(yè)面該頁(yè)面可以瀏覽藥品具體信息,確認(rèn)是否購(gòu)買(mǎi),若選擇購(gòu)買(mǎi)則跳轉(zhuǎn)到購(gòu)買(mǎi)藥品頁(yè)面,如(圖4-13)所示。圖4-13查看藥品信息如(4-14)所示。25北京郵電大學(xué)畢業(yè)設(shè)計(jì)北京郵電大學(xué)畢業(yè)設(shè)計(jì)PAGEPAGE27二lli吐心!謾苯U租孵諞軞伈詛|l斗引三廠II|1互亢查看選購(gòu),在查看選購(gòu)處可以繼續(xù)購(gòu)買(mǎi),清除購(gòu)買(mǎi)或是結(jié)賬,如(亢巨.當(dāng)四,帳磷>)i翌迥EI!愕矗旦嘩巨.當(dāng)四,帳磷>)i翌迥EI!愕矗旦嘩歸_n;講I!共元已土11匣圖4-15查看選購(gòu)頁(yè)面該功能模塊的流程圖如(圖4-16)所示。開(kāi) 始4查毛藥品涫忠心f危妀茹呈干'桽吾藥品者羊廿十潔空購(gòu)買(mǎi)千 結(jié)賬' 緋續(xù)購(gòu)買(mǎi)' +結(jié)束圖4-16選購(gòu)藥品流程圖銷(xiāo)售管理頁(yè)面在此處可以查看所有的銷(xiāo)售明細(xì),今日明細(xì),也可以按照日期來(lái)查詢(xún),如(圖4-17)所示。.蘭茄位置箭蠢盲哩}〉.蘭茄位置箭蠢盲哩}〉箭蜇啊攫.圖4-17銷(xiāo)售明細(xì)查看頁(yè)面北京郵電大學(xué)畢業(yè)設(shè)計(jì)進(jìn)貨/需求管理頁(yè)面添加進(jìn)貨,在此處可以添加進(jìn)貨,并可以修改進(jìn)貨,如圖(4-18)所示。圖4-18添加進(jìn)貨頁(yè)面(圖所示。圖4-19查看進(jìn)貨頁(yè)面系統(tǒng)設(shè)置頁(yè)面管理員添加,輸入用戶(hù)名、密碼、確認(rèn)密碼就可以完成管理員的添加,如(圖所示。圖4-20管理員添加頁(yè)面28北京郵電大學(xué)畢業(yè)設(shè)計(jì)北京郵電大學(xué)畢業(yè)設(shè)計(jì)PAGEPAGE39查看管理員,添加后可以查看管理員信息,還可以進(jìn)行刪除操作,如(圖4-21)示。: 巨戶(hù)名 廠旺晌:刊14-{]t-{]BLH5圖4-21查看管理員頁(yè)面第五章 系統(tǒng)測(cè)試系統(tǒng)測(cè)試原理及測(cè)試原則現(xiàn)預(yù)計(jì)的功能。其目的是方便整個(gè)系統(tǒng)的實(shí)現(xiàn)。測(cè)試的原理理和方法。同時(shí),針對(duì)軟件的特性,必須找到合適的測(cè)試方法。試的周期如(5-1)所示。需求分析系統(tǒng)設(shè)計(jì)編制程序單元測(cè)試需求分析系統(tǒng)設(shè)計(jì)編制程序單元測(cè)試集成測(cè)試系統(tǒng)測(cè)試確認(rèn)測(cè)試使用維護(hù)測(cè)試階段5-1軟件測(cè)試周期示意圖系統(tǒng)測(cè)試原則程序員應(yīng)避免測(cè)試自己編寫(xiě)的程序;測(cè)試用例的設(shè)計(jì)必須包括預(yù)期的輸出結(jié)果;測(cè)試用例應(yīng)包括有效的和期望的輸入情況,也要包括無(wú)效的和不期望的輸入情況;所有的測(cè)試都應(yīng)追溯到用戶(hù)需求,所有測(cè)試活動(dòng)都應(yīng)該是有計(jì)劃的,并且計(jì)劃能夠得到保障。只檢查程序是否做了它應(yīng)該做的事這僅完成了測(cè)試工作的一半,另一半則是要檢查程序是否做了它不該做的事;一段程序中存在錯(cuò)誤的概率與在這段程序中已發(fā)現(xiàn)的錯(cuò)誤數(shù)成比例;測(cè)試上作必須有明確的目標(biāo);盡早地和不斷地進(jìn)行軟件測(cè)試;窮舉測(cè)試是不可能的,充分覆蓋程序邏輯是有可能的。系統(tǒng)測(cè)試的方法分類(lèi):從是否需要執(zhí)行被測(cè)軟件的角度,可分為靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試。從測(cè)試是否針對(duì)系統(tǒng)的內(nèi)部結(jié)構(gòu)和具體實(shí)現(xiàn)算法的角度來(lái)看,可分為白盒測(cè)試和黑盒測(cè)試。黑盒測(cè)試(如數(shù)據(jù)庫(kù)或文件)的完整性。黑盒測(cè)試方法主要有等價(jià)類(lèi)劃分、邊值分析、因果圖、錯(cuò)誤推測(cè)等白盒測(cè)試測(cè)試項(xiàng)目說(shuō)明表5.1 登陸藥店管理系統(tǒng)測(cè)試用例測(cè)試項(xiàng)目名測(cè)試項(xiàng)目名稱(chēng)測(cè)試內(nèi)容執(zhí)行者登錄測(cè)試是否能成功登錄栗茜續(xù)表5.1輸入:密碼:liqian輸出:成功登錄,進(jìn)入管理頁(yè)面錯(cuò)誤輸入1:用戶(hù)名或者密碼為空錯(cuò)誤輸出:沒(méi)有提示,直接跳轉(zhuǎn)回原界面錯(cuò)誤輸入2:輸入的用戶(hù)名和密碼不存在錯(cuò)誤輸出:沒(méi)有提示,跳轉(zhuǎn)回原界面步驟及操作:進(jìn)入登錄的頁(yè)面輸入用戶(hù)名和密碼點(diǎn)擊登錄按鈕系統(tǒng)直接跳轉(zhuǎn)管理頁(yè)允許偏差 沒(méi)有進(jìn)入管理頁(yè)面條件 用戶(hù)名和密碼需要提前錄入數(shù)據(jù)庫(kù)表5.2 藥品添加測(cè)試用例測(cè)試項(xiàng)目名測(cè)試項(xiàng)目名稱(chēng)測(cè)試內(nèi)容執(zhí)行者測(cè)試用例輸入:藥品添加測(cè)試是否能正確添加藥品栗茜藥品編碼:012藥品名稱(chēng):甘草片單價(jià):2元庫(kù)存數(shù)量:20出廠地址:哈藥六廠描述:止咳清熱輸出:添加成功,并把添加的藥品信息添加到原有藥品中錯(cuò)誤輸入:請(qǐng)完成輸入操作錯(cuò)誤輸入:錯(cuò)誤輸出:藥品名稱(chēng)輸入123錯(cuò)誤輸入:錯(cuò)誤輸出:請(qǐng)輸入數(shù)字
續(xù)表5.2
進(jìn)入添加藥品的頁(yè)面輸入各空項(xiàng)確定添加添加成功,轉(zhuǎn)到查看藥品頁(yè)面表5.3 藥品類(lèi)別管理測(cè)試用例測(cè)試項(xiàng)目名測(cè)試項(xiàng)目名稱(chēng)測(cè)試內(nèi)容執(zhí)行者輸入:藥品類(lèi)別測(cè)試測(cè)試藥品類(lèi)別是否能夠正確添加栗茜藥品類(lèi)別:保健藥類(lèi)別表述:保健身體輸出:進(jìn)入查看藥品類(lèi)別頁(yè)面步驟及操作:進(jìn)入類(lèi)別管理的主頁(yè)面在藥品類(lèi)別內(nèi)輸入需要新加入的類(lèi)別名稱(chēng)在類(lèi)別描述中輸入描述信息點(diǎn)擊確認(rèn)進(jìn)入類(lèi)別查看頁(yè)面添加成功表5.4 購(gòu)買(mǎi)藥品測(cè)試用例測(cè)試項(xiàng)目名測(cè)試項(xiàng)目名稱(chēng)測(cè)試內(nèi)容執(zhí)行者測(cè)試用例購(gòu)買(mǎi)藥品測(cè)試購(gòu)買(mǎi)藥品功能是否能夠正確執(zhí)行栗茜續(xù)表5.4輸入:輸入:修改數(shù)量中的內(nèi)容,輸出:進(jìn)入已選購(gòu)藥品頁(yè)面,并顯示應(yīng)付總金額步驟及操作:進(jìn)入購(gòu)買(mǎi)藥品的主頁(yè)面選擇要購(gòu)買(mǎi)的藥品點(diǎn)擊購(gòu)買(mǎi)按鈕輸入要買(mǎi)藥品的數(shù)量點(diǎn)擊提交進(jìn)入已購(gòu)買(mǎi)藥品頁(yè)面,并顯示應(yīng)付總金額表5.5 銷(xiāo)售管理測(cè)試用例測(cè)試項(xiàng)目名測(cè)試項(xiàng)目名稱(chēng)測(cè)試內(nèi)容執(zhí)行者測(cè)試用例輸入:點(diǎn)擊查看明細(xì)輸出:銷(xiāo)售管理測(cè)試查看銷(xiāo)售明細(xì)是否能正確執(zhí)行栗茜顯示銷(xiāo)售明細(xì)頁(yè)面,內(nèi)容是所有銷(xiāo)售信息,并且顯示具體藥品內(nèi)容。步驟及操作:進(jìn)入銷(xiāo)售管理的主頁(yè)面顯示具體藥品銷(xiāo)售信息表5.6 進(jìn)需求管理測(cè)試用例測(cè)試項(xiàng)目名測(cè)試項(xiàng)目名稱(chēng)測(cè)試內(nèi)容執(zhí)行者測(cè)試用例輸入:進(jìn)貨/需求管理測(cè)試添加進(jìn)貨,查看進(jìn)貨功能能否正確執(zhí)行栗茜在藥品編碼中輸入003輸出:40輸出:顯示藥品進(jìn)貨/需求信息續(xù)表5.6輸入輸入:數(shù)量中不輸入任何內(nèi)容錯(cuò)誤輸入:數(shù)量不能為空步驟及操作:進(jìn)入進(jìn)貨/需求管理頁(yè)面輸入進(jìn)貨數(shù)量點(diǎn)擊提交按鈕顯示進(jìn)貨藥品在藥品信息的需求一欄中顯示需求數(shù)量表5.7 系統(tǒng)管理測(cè)試用例測(cè)試項(xiàng)目名測(cè)試項(xiàng)目名稱(chēng)測(cè)試內(nèi)容執(zhí)行者測(cè)試用例輸入:系統(tǒng)管理測(cè)試各項(xiàng)功能能否正確執(zhí)行栗茜adminadmin在確認(rèn)密碼中輸入admin輸出:,顯示新添加的用戶(hù)信息輸入:在登錄界面中輸入剛添加的用戶(hù)名和密碼輸出:進(jìn)入藥店管理界面步驟及操作:進(jìn)入添加管理員主頁(yè)面在用戶(hù)名,密碼,確認(rèn)密碼中輸入信息點(diǎn)擊提交跳轉(zhuǎn)到所有用戶(hù)界面,并顯示新添加的用戶(hù)信息結(jié) 論藥品的基本信息,藥品銷(xiāo)售,藥品庫(kù)存和進(jìn)貨等幾個(gè)非常重要的操作。WEBWEB通過(guò)這次本科畢業(yè)設(shè)計(jì),使我對(duì)web開(kāi)發(fā)有了更為深刻的理解,積累了一定的網(wǎng)站助下一一解決了,同時(shí)學(xué)到了許多技術(shù)知識(shí)和開(kāi)發(fā)技巧。SQL語(yǔ)句來(lái)開(kāi)發(fā)功能更后有可能的情況下進(jìn)一步改進(jìn)系統(tǒng)功能。IT致 謝光陰似箭,轉(zhuǎn)眼間大學(xué)生活已接近尾聲。在大學(xué)的最后階段,畢業(yè)論文是我的重中之重,在論文完成的過(guò)程中,除了我自己的努力之外,也凝聚了很多人的心血。所以我要對(duì)幫助我完成論文的所有人表示感謝。首先,我要對(duì)我的指導(dǎo)老師,表示誠(chéng)摯的感謝。感謝我的老師,他放下神圣的師道尊嚴(yán),以朋友的身份告訴我怎樣完成這篇論文,怎樣搜集資料。他在忙碌的工作中擠出時(shí)間來(lái)審查、修改我的論文,嚴(yán)格把關(guān),循循善誘,在此我表示衷心感謝。其次,無(wú)私的幫助。最后,我要感謝我的父母,他們一直是我努力和學(xué)習(xí)的動(dòng)力,感謝他們?yōu)槲宜冻龅囊磺小@蠋熃o予指正。參考文獻(xiàn)[D]2012.JAVA[J].上海交通大學(xué),2010.C/S[J].展,2002.耿壯.基于JavaEE[D].電腦知識(shí)與技術(shù),2012.商宇,李麗.基于WebService[J],2005..WEBJSP2009.崔尚森,張白.Web[M].西安:西安電子科技大學(xué)出版社,2007,34.楊瑞龍.JavaEEWeb程序設(shè)計(jì)(Eclipse平臺(tái))[M].北京:機(jī)械工業(yè)出版社,2008,134..Spring[M]2006,166.Chien-HuangLiu.DataflowanalysisandtestingofJSP-basedWebapplication.DepartmentofComputerScienceandInformationEngineering,2006JuFengJuan.TheApplicationofServletandJavabeanIntheDesignofBlog.Deptofcomputerscience,JiangxiBlueskyUniversity,Nanchang,China,2011Krill,Paul.ApachereadiesTomcatJavaservletcontainerupdate.InfoW,2009Anonymous.J9TechnologiesDebugsJDBCProtocolAdd-inSolutionforHPLoadRunner.WirelessNews,2009外文原文(出處:MalcolmDavis.Struts--anopen-sourceMVCimplementation[J].IBMSystemsJournal,2006,44(2):33-37.)Struts——anopen-sourceMVCimplementationMalcolmDavisThisarticleintroducesStruts,aModel-View-ControllerimplementationthatusesservletsJavaServerPages(JSP)technology.StrutscanhelpyoucontrolchangeinyourWebprojectandpromotespecialization.EvenifyouneverimplementasystemwithStruts,youmaygetsomeideasforyourfutureservletsandJSPpageimplementation.IntroductionKidsingradeschoolputHTMLpagesontheInternet.However,thereisamonumentaldifferencebetweenagradeschoolpageandaprofessionallydevelopedWebsite.Thepagedesigner(orHTMLdeveloper)mustunderstandcolors,thecustomer,productflow,pagelayout,browsercompatibility,imagecreation,JavaScript,andmore.Puttingagreatsitetogethertakesalotofwork,andmostJavadevelopersaremoreinterestedincreatingagreatlookingobjectinterfacethanauserinterface.JavaServerPages(JSP)technologyprovidesthegluebetweenthepagedesignerandtheJavadeveloper.Ifyouhaveworkedonalarge-scaleWebapplication,youunderstandthetermchange.Model-View-Controller(MVC)isadesignpatternputtogethertohelpcontrolchange.decouplesinterfacefrombusinesslogicanddata.StrutsisanMVCimplementationthatusesServlets2.2andJSP1.1tags,fromtheJ2EEspecifications,aspartoftheimplementation.YoumayneverimplementasystemwithStruts,butlookingatStrutsmaygiveyouideasonyourfutureServletsandJSPimplementations.Model-View-Controller(MVC)JSPtagssolvedonlypartofourproblem.Westillhaveissueswithvalidation,flowcontrol,andupdatingthestateoftheapplication.ThisiswhereMVCcomestotherescue.MVChelpsresolvesomeoftheissueswiththesinglemoduleapproachbydividingtheproblemintothreecategories:ModelThemodelcontainsthecoreoftheapplication'sfunctionality.Themodelencapsulatesthestateoftheapplication.Sometimestheonlyfunctionalityitcontainsisstate.Itknowsnothingaboutthevieworcontroller.ViewTheviewprovidesthepresentationofthemodel.Itisthelookoftheapplication.viewcanaccessthemodelgetters,butithasnoknowledgeofthesetters.Inaddition,itknowsnothingaboutthecontroller.Theviewshouldbenotifiedwhenchangestothemodeloccur.北京郵電大學(xué)畢業(yè)設(shè)計(jì)ControllerThecontrollerreactstotheuserinput.Itcreatesandsetsthemodel.MVCModel2TheWebbroughtsomeuniquechallengestosoftwaredevelopers,mostnotablythestatelessconnectionbetweentheclientandtheserver.Thisstatelessbehaviormadeitdifficultformodeltonotifytheviewofchanges.OntheWeb,thebrowserhastore-querytheservertodiscovermodificationtothestateoftheapplication.Anothernoticeablechangeisthattheviewusesdifferenttechnologyforimplementationthanthemodelorcontroller.Ofcourse,wecoulduseJava(orPERL,C/C++orwhatever)codegenerateHTML.Thereareseveraldisadvantagestothatapproach:Javaprogrammersshoulddevelopservices,notHTML.Changestolayoutwouldrequirechangestocode.Customersoftheserviceshouldbeabletocreatepagestomeettheirspecificneeds.Thepagedesignerisn'tabletohavedirectinvolvementinpagedevelopment.HTMLembeddedintocodeisugly.FortheWeb,theclassicalformofMVCneededtochange.Figure4displaystheadaptationofMVC,alsocommonlyknownasMVCModel2orMVC2.StrutsdetailsDisplayedinFigure6isastripped-downUMLdiagramoftheorg.apache.struts.actionpackage.Figure6showstheminimalrelationshipsamongActionServlet(Controller),ActionForm(FormState),andAction(ModelWrapper).Figure6.UMLdiagramoftherelationshipoftheCommand(ActionServlet)totheModel(Action&ActionForm)TheActionServletclassDoyourememberthedaysoffunctionmappings?Youwouldmapsomeinputeventtoapointertoafunction.Ifyouwhereslick,youwouldplacetheconfigurationinformation40北京郵電大學(xué)畢業(yè)設(shè)計(jì)afileandloadthefileatruntime.FunctionpointerarrayswerethegoodolddaysstructuredprogramminginC.LifeisbetternowthatwehaveJavatechnology,XML,J2EE,andallthat.TheStrutsControllerisaservletthatmapsevents(aneventgenerallybeinganHTTPpost)toclasses.Andguesswhat--theControllerusesaconfigurationfilesoyoudon_thavetohard-codevalues.Lifechanges,butstaysthesame.ActionServletistheCommandpartoftheMVCimplementationandisthecoreoftheFramework.ActionServlet(Command)createsandusesAction,anActionForm,andActionForward.Asmentionedearlier,thestruts-config.xmlfileconfigurestheCommand.DuringthecreationoftheWebproject,ActionandActionFormareextendedtosolvethespecificproblemspace.Thefilestruts-config.xmlinstructsActionServletonhowtouseextendedclasses.Thereareseveraladvantagestothisapproach:Theentirelogicalflowoftheapplicationisinahierarchicaltextfile.Thismakeseasiertoviewandunderstand,especiallywithlargeapplications.ThepagedesignerdoesnothavetowadethroughJavacodetounderstandtheflowtheapplication.TheJavadeveloperdoesnotneedtorecompilecodewhenmakingflowchanges.CommandfunctionalitycanbeaddedbyextendingActionServlet.TheActionFormclassActionFormmaintainsthesessionstatefortheWebapplication.ActionFormisanabstractclassthatissub-classedforeachinputformmodel.WhenIsayinputformsayingActionFormrepresentsageneralconceptofdatathatissetorupdatedbyaHTMLform.Forinstance,youmayhaveaUserActionFormthatissetbyanHTMLForm.TheStrutsframeworkwill:ChecktoseeifaUserActionFormexists;ifnot,itwillcreateaninstanceoftheclass.StrutswillsetthestateoftheUserActionFormusingcorrespondingfieldsfromtheHttpServletRequest.Nomoredreadfulrequest.getParameter()calls.Forinstance,StrutsframeworkwilltakefnamefromrequeststreamandcallUserActionForm.setFname().TheStrutsframeworkupdatesthestateoftheUserActionFormbeforepassingitthebusinesswrapperUserAction.BeforepassingittotheActionclass,Strutswillalsoconductformstatevalidationbycallingthevalidation()methodonUserActionForm.Note:Thisisnotalwayswisetodo.TheremightbewaysofusingUserActionForminotherpagesorbusinessobjects,wherethevalidationmightbedifferent.ValidationofthestatemightbebetterintheUserActionclass.TheUserActionFormcanbemaintainedatasessionlevel.Notes:41北京郵電大學(xué)畢業(yè)設(shè)計(jì)Thestruts-config.xmlfilecontrolswhichHTMLformrequestmapstoActionForm.MultiplerequestscanbemappedUserActionForm.UserActionFormcanbemappedovermultiplepagesforthingssuchaswizards.TheActionclassTheActionclassisawrapperaroundthebusinesslogic.ThepurposeofActionclassistotranslatetheHttpServletRequesttothebusinesslogic.TouseAction,subclassandoverwritetheprocess()method.TheActionServlet(Command)passestheparameterizedclassestoActionFormusingtheperform()method.Again,nomoredreadfulrequest.getParameter()calls.Bythetimetheeventgetshere,theinputformdata(orHTMLformdata)hasalreadybeentranslatedouttherequeststreamandintoanActionFormclass.Figure4.MVCModel2Struts,anMVC2implementationStrutsisasetofcooperatingclasses,servlets,andJSPtagsthatmakeupareusableMVC2design.ThisdefinitionimpliesthatStrutsisaframework,ratherthanalibrary,butStrutsalsocontainsanextensivetaglibraryandutilityclassesthatworkindependentlyoftheframework.Figure5displaysanoverviewofStruts.Figure5.StrutsoverviewStrutsoverview42北京郵電大學(xué)畢業(yè)設(shè)計(jì)ClientbrowserAnHTTPrequestfromtheclientbrowsercreatesanevent.TheWebcontainerrespondwithanHTTPresponse.ControllerTheControllerreceivestherequestfromthebrowser,andmakesthedecisiontosendtherequest.WithStruts,theControllerisacommanddesignpatternimplementedasaservlet.Thestruts-config.xmlfileconfigurestheController.BusinesslogicThebusinesslogicupdatesthestateofthemodelandhelpscontroltheflowofapplication.WithStrutsthisisdonewithanActionclassasathinwrappertotheactualbusinesslogic.ModelstateThemodelrepresentsthestateoftheapplication.Thebusinessobjectsupdatetheapplicationstate.ActionFormbeanrepresentstheModelstateatasessionorlevel,andnotatapersistentlevel.TheJSPfilereadsinformationfromtheActionFormbeanusingJSPtags.ViewTheviewissimplyaJSPfile.Thereisnoflowlogic,nobusinesslogic,andnoinformation--justtags.TagsareoneofthethingsthatmakeStrutsuniquecomparedtootherframeworkslikeVelocity.Note:"Thinkthin"whenextendingtheActionclass.TheActionclassshouldcontroltheandnotthelogicoftheapplication.ByplacingthebusinesslogicinaseparatepackageorEJB,weallowflexibilityandreuse.AnotherwayofthinkingaboutActionclassisastheAdapterdesignpattern.ThepurposetheActionisto"Converttheinterfaceofaclassintoanotherinterfacetheclientsexpect.Adapterletsclassesworktogetherthatcouldn_totherwisebecauseofincompatibilityinterface"(fromDesignPatterns-ElementsofReusableOOSwf.TheclientthisinstanceistheActionServletthatknowsnothingaboutourspecificbusinessclassinterface.Therefore,Strutsprovidesabusinessinterfaceitdoesunderstand,Action.ByextendingtheAction,wemakeourbusinessinterfacecompatiblewithStrutsbusinessinterface.(AninterestingobservationisthatActionisaclassandnotaninterface.Actionstartedasaninterfaceandchangedintoaclassovertime.Nothing'sperfect.)TheErrorclassesTheUMLdiagram(Figure6)alsoincludedActionErrorandActionErrors.ActionErrorencapsulatesanindividualerrormessage.ActionErrorsisacontainerofActionErrorthattheViewcanaccessusingtags.ActionErrorsisStrutswayofkeepingupwithalistoferrors.Figure7.UMLdiagramoftherelationshipoftheCommand(ActionServlet)tothe43北京郵電大學(xué)畢業(yè)設(shè)計(jì)Model(Action)TheActionMappingclassAnincomingeventisnormallyintheformofanHTTPrequest,whichtheservletContainerturnsintoanHttpServletRequest.TheControllerlooksattheincomingeventanddispatchestherequesttoanActionclass.Thestruts-config.xmldetermineswhatActionclasstheControllercalls.Thestruts-config.xmlconfigurationinformationistranslatedintoasetofActionMapping,whichareputintocontainerofActionMappings.(Ifyouhavenotnoticedclassesthatendwithsarecontainers)TheActionMappingcontainstheknowledgeofhowaspecificeventmapstospecificActions.TheActionServlet(Command)passestheActionMappingtotheActionclassviaperform()method.ThisallowsActiontoaccesstheinformationtocontrolflow.ActionMappingsActionMappingsisacollectionofActionMappingobjects.StrutsprosUseofJSPtagmechanismThetagfeaturepromotesreusablecodeandabstractsJavacodefromtheJSPThisfeatureallowsniceintegrationintoJSP-baseddevelopmenttoolsthatallowauthoringwithtags.TaglibraryWhyre-inventthewheel,orataglibrary?Ifyoucannotfindsomethingyouneedinthelibrary,contribute.Inaddition,StrutsprovidesastartingpointifyouarelearningJSPtagtechnology.OpensourceYouhavealltheadvantagesofopensource,suchasbeingabletoseethecodeandhavingeveryoneelseusingthelibraryreviewingthecode.Manyeyesmakeforcodereview.SampleMVCimplementationStrutsofferssomeinsightifyouwanttocreateyourownMVCimplementation.44北京郵電大學(xué)畢業(yè)設(shè)計(jì)北京郵電大學(xué)畢業(yè)設(shè)計(jì)PAGEPAGE46ManagetheproblemspaceDivideandconquerisanicewayofsolvingtheproblemandmakingtheproblemmanageable.Ofcourse,theswordcutsbothways.Theproblemismorecomplexneedsmoremanagement.StrutsconsYouthStrutsdevelopmentisstillinpreliminaryform.Theyareworkingtowardreleasingaversion1.0,butaswithany1.0version,itdoesnotprovideallthebellsandwhistles.ChangeTheframeworkisundergoingarapidamountofchange.AgreatdealofchangehasoccurredbetweenStruts0.5and1.0.YoumaywanttodownloadthemostcurrentStrutsnightlydistributions,toavoiddeprecatedmethods.Inthelast6months,IseentheStrutslibrarygrowfrom90Ktoover270K.IhadtomodifymyexamplesseveraltimesbecauseofchangesinStruts,andIamnotgoingtoguaranteemyexampleswillworkwiththeversionofStrutsyoudownload.CorrectlevelofabstractionDoesStrutsprovidethecorrectlevelofabstraction?Whatistheproperlevelofabstractionforthepagedesigner?Thatisthe$64Kquestion.ShouldweallowapagedesigneraccesstoJavacodeinpagedevelopment?SomeframeworkslikeVelocitysayno,andprovideyetanotherlanguagetolearnforWebdevelopment.Thereissom
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 管井房電纜改造合同
- 廣告導(dǎo)演聘用合同
- 合同標(biāo)準(zhǔn)質(zhì)量范文
- 犬耳螨的診斷與治療
- 2024正規(guī)廠房租賃合同書(shū)
- 煤礦安全規(guī)程
- 2024設(shè)備改造的合同范本
- 2024專(zhuān)賣(mài)店申請(qǐng)加盟合同模板
- 2024家庭裝修全包合同
- 專(zhuān)題06課文理解與填空-2022-2023學(xué)年四年級(jí)語(yǔ)文上冊(cè)期末復(fù)習(xí)知識(shí)點(diǎn)精講精練(部編版)
- 【期中考后反思】《反躬自省,砥礪奮進(jìn)》-2022-2023學(xué)年初中主題班會(huì)課件
- 2019新教材人教版生物必修1教材課后習(xí)題答案
- 2024年中國(guó)白酒行業(yè)數(shù)字化轉(zhuǎn)型研究報(bào)告-36氪-202409
- 《學(xué)校主人公:3 校園廣播站》教學(xué)設(shè)計(jì)-2024-2025學(xué)年五年級(jí)上冊(cè)綜合實(shí)踐活動(dòng)滬科黔科版
- 外傷急救包扎技術(shù)說(shuō)課課件
- 人教版(2024新版)七年級(jí)上冊(cè)英語(yǔ)全冊(cè)語(yǔ)法知識(shí)點(diǎn)講義
- 全國(guó)青島版信息技術(shù)七年級(jí)下冊(cè)專(zhuān)題一第8課三、《高級(jí)統(tǒng)計(jì)-數(shù)據(jù)透視表》教學(xué)設(shè)計(jì)
- 內(nèi)分泌科品管圈成果匯報(bào)提高糖尿病患者健康教育知曉率
- 2024年秋季新人教版七年級(jí)數(shù)學(xué)上冊(cè)教學(xué)課件 第五章 一元一次方程 5.3實(shí)際問(wèn)題與一元一次方程(第4課時(shí))
- 清淡的晚餐(課件)六年級(jí)上冊(cè)勞動(dòng)北京版
- 婦科內(nèi)分泌疾病診斷與治療考核試卷
評(píng)論
0/150
提交評(píng)論