




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
北京郵電大學(xué)畢業(yè)設(shè)計(jì)北京郵電大學(xué)畢業(yè)設(shè)計(jì)PAGE\*ROMANPAGE\*ROMANIV基于java的藥店管理系統(tǒng)摘要InternetIT產(chǎn)業(yè)在市場競爭這使得對數(shù)據(jù)庫的進(jìn)一步開發(fā)和利用顯得尤為迫切。增長,藥店管理系統(tǒng)成為市場常用的系統(tǒng)之一。它最主要的特點(diǎn)是能夠?qū)崟r(shí)的和準(zhǔn)確的合理的分配資源。同時(shí)系統(tǒng)將所有的藥品信息透明化,不會讓廣大群眾花冤枉錢。Spring,Hibernate,Struts流行框架技術(shù)來對業(yè)務(wù)邏輯和數(shù)據(jù)持久化模塊設(shè)計(jì)結(jié)束后的整合。此系統(tǒng)流程相對清晰,功能上主要完成對藥品的管理和各種操作,同時(shí)也實(shí)現(xiàn)了對系統(tǒng)管理員的增刪操作。通過后期系統(tǒng)的不斷完善和改造,優(yōu)化界面并且修改系統(tǒng)漏洞,基本實(shí)現(xiàn)了各個功能模塊。關(guān)鍵詞:藥店管理系統(tǒng),Web,java,數(shù)據(jù)庫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)開發(fā)背景 2開發(fā)背景 2我國藥店管理系統(tǒng)發(fā)展現(xiàn)狀 2不同層面藥店的發(fā)展現(xiàn)狀 2藥店進(jìn)銷存管理的發(fā)展現(xiàn)狀 3第二章 系統(tǒng)相關(guān)技術(shù) 4設(shè)計(jì)思想 4開發(fā)工具 4java簡介 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ù)庫表 17第四章 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) 19系統(tǒng)功能設(shè)計(jì) 19系統(tǒng)功能界面介紹 19系統(tǒng)登錄頁面 20系統(tǒng)首頁頁面 20藥品管理頁面 21類別管理頁面 23藥品購買頁面 24銷售管理頁面 27進(jìn)貨/需求管理頁面 28系統(tǒng)設(shè)置頁面 28第五章 系統(tǒng)測試 30系統(tǒng)測試原理及測試原則 30測試的原理 30系統(tǒng)測試原則 31系統(tǒng)測試的方法 31測試項(xiàng)目說明 31結(jié) 論 36致 謝 37參考文獻(xiàn) 38外文原文 39外文譯文 47北京郵電大學(xué)畢業(yè)設(shè)計(jì)北京郵電大學(xué)畢業(yè)設(shè)計(jì)PAGEPAGE9緒 論濟(jì)效益做出了顯著的貢獻(xiàn)。就藥店而言,特別是一些中小型的藥店,在信息化過程中的步伐要落后于大中型藥第一章 系統(tǒng)開發(fā)背景開發(fā)背景也的發(fā)展,所以網(wǎng)上藥店管理是勢在必行。效的處理方式和管理方法,因此加快藥店的信息化進(jìn)程是必不可少的。我國藥店管理系統(tǒng)發(fā)展現(xiàn)狀不同層面藥店的發(fā)展現(xiàn)狀順應(yīng)了零售行業(yè)對信息化的要求,為商業(yè)管理信息系統(tǒng)提供了系統(tǒng)全面的技術(shù)解決方隨著信息化的快速發(fā)展,以及激烈的市場競爭,各藥店也將在信息化上下功夫,以高效率、低成本立足市場,獲得更多的利潤。藥店進(jìn)銷存管理的發(fā)展現(xiàn)狀POS店的效益,并提高日常運(yùn)營效率。第二章 系統(tǒng)相關(guān)技術(shù)設(shè)計(jì)思想時(shí)系統(tǒng)將所有的藥品信息透明化。WEBWEB開發(fā)工具java簡介JavaSunMicrosystems19955JavaJava向因特網(wǎng)的所有特點(diǎn)。面向?qū)ο螅浩鋵?shí)是現(xiàn)實(shí)世界模型的自然延伸。現(xiàn)實(shí)世界中任何實(shí)體都可以看過程式編程語言為:程序=算法+數(shù)據(jù);面向?qū)ο缶幊陶Z言為:程序=對象+消息。所有面向?qū)ο缶幊陶Z言都支持三個概念:封裝、多態(tài)性和繼承,Java也不例外?,F(xiàn)實(shí)世界。所謂封裝,就是用一個自主式框架把對JavaJavaJava上解釋執(zhí)行,只要經(jīng)過簡單的粘貼和復(fù)制就行了,不影響程序的效果Java(TM),所以“砂箱”安全性模型對它們不起限制作用。從安全性的觀點(diǎn)看,Java應(yīng)用程Java程序,您必須對集成文件系統(tǒng)中的類文件具有權(quán)限。程序一旦啟動,它就在該用戶權(quán)限控制下運(yùn)行。您可以使用沿用權(quán)限來訪問具有運(yùn)行程序的用戶的權(quán)限和程序擁有者權(quán)限的對象權(quán)限臨時(shí)地將用戶原先無權(quán)訪問的對象的權(quán)限授予用戶。支持多線程技術(shù),就是多個線程并行機(jī)制,多線程是Java個重要方法,特別有利于在程序中實(shí)現(xiàn)并發(fā)任務(wù).Java提供Thread線程類,的并發(fā)機(jī)制.然而,,因而,而在進(jìn)行臨界資源分配時(shí)有兩方面需要考慮,即安全性和公平性.文中首先討論了多線程并發(fā)系統(tǒng)中的安全性與公平性問題,指出安全性與公平性在并發(fā)系統(tǒng)中訪問臨界資源時(shí)的重要性.隧道的實(shí)例,演示各種條件下的行駛情況來進(jìn)一步說明該問題.JavaEE(JavaPlatform,EnterpriseEdition)sun公司推出的企業(yè)級應(yīng)用程序版本。這個版本以前稱為J2EEJava應(yīng)用程序。JavaEEJavaSEWeb服務(wù)、組件模型、管理和通信API,可以用來實(shí)現(xiàn)企業(yè)級的面向服務(wù)體系結(jié)構(gòu)(service-orientedarchitecture,SOA)Web2.0JavaEEJDBC(JavaDatabaseConnectivity)提供連接各種關(guān)系數(shù)據(jù)庫的統(tǒng)一接口,據(jù)庫提供統(tǒng)一訪問,它由一組用Java語言編寫的類和接口組成。JDBC為工具/JavaAPI編寫數(shù)據(jù)庫應(yīng)用程序,同時(shí),JDBC也是個商標(biāo)名。struts介紹Struts對Model,View和Controller都提供了對應(yīng)的組件。ActionServletStrutsActionServletJSP頁面顯示。ModelActionFormJavaBeanActionFormActionFormActionServletAction,ActionActionForm里面的請求參數(shù)處理用戶的請求。JavaBean括數(shù)據(jù)庫訪問等。ViewJSP(HTML、PHP……)實(shí)現(xiàn)。Struts提供了豐富的標(biāo)簽庫,通過標(biāo)簽庫可以減少腳本的使用,自定義的標(biāo)簽庫可ModelJSP部分。Controller組件:Controller組件有兩個部分組成——系統(tǒng)核心控制器,業(yè)務(wù)邏輯控制器。系統(tǒng)核心ActionServletStrutsHttpServletServletHTTP請求,然后根據(jù)用戶請求決ModelAction部分。spring介紹Spring7Spring模塊構(gòu)建在核beanSpring框架的每個模塊(或組件)功能如下:核心容器:核心容器提供Spring框架的基本功能。核心容器的主要組件BeanFactory,它是工廠模式的實(shí)現(xiàn)。BeanFactory(IOC)用程序的配置和依賴性規(guī)范與實(shí)際的應(yīng)用程序代碼分開。Spring上下文:SpringSpring框架提供上下文信息。Spring上下文包括企業(yè)服務(wù),例如JNDI、EJB、電子郵件、國際化、校驗(yàn)和調(diào)度功能。SpringAOP:通過配置管理特性,SpringAOP模塊直接將面向方面的編程功能集SpringSpringAOPSpringAOPSpring的應(yīng)用程序中的對象提供了事務(wù)管理服務(wù)。通過使用SpringEJB組件,就可以將聲明性事務(wù)管理集成到應(yīng)用程序中。SpringDAO:JDBCDAO極大地降低了需要編寫的異常代碼數(shù)量(例如打開和關(guān)閉連接。SpringDAOJDBCDAO異常層次結(jié)構(gòu)。SpringORMORMJDO、HibernateiBatisSQLMapSpringDAO異常層次結(jié)構(gòu)。SpringWeb上下文模塊建立在應(yīng)用程序上下文模塊之上,為基于JakartaStrutsWeb模塊還簡化了處理多部分請求以及將請求參數(shù)綁定到域?qū)ο蟮墓ぷ?。SpringMVC框架:MVC框架是一個全功能的構(gòu)建 Web應(yīng)用程序的MVC現(xiàn)。通過策略接口,MVC框架變成為高度可配置的,MVC容納了大量視圖技術(shù),中包括JSPTilesiText和POISpring框架的功能可以用在任何J2EE務(wù)器中,大多數(shù)功能也適用于不受管理的環(huán)境。Spring的核心要點(diǎn)是:支持不綁定到特定J2EE服務(wù)的可重用業(yè)務(wù)和數(shù)據(jù)訪問對象。毫無疑問,這樣的對象可以在不同J2EE環(huán)境(Web或EJB、獨(dú)立應(yīng)用程序、測試環(huán)境之間重用。Springorg.springframework.beans包,它的設(shè)計(jì)目標(biāo)是與JavaBean的底層中介。下一個最高級抽象是BeanFactoryBeanFactoryBeanFactory支持Singleton是默認(rèn)的也是最常用的對象模型。對于無狀態(tài)服務(wù)對象很理想。beanSpringIOCIOCSpring框架使JavaBean屬性和配置數(shù)據(jù)來指出必須設(shè)置的依賴關(guān)系。Hibernate介紹HibernateJavaSQL的關(guān)系模型結(jié)構(gòu)中去,為面向?qū)ο蟮念I(lǐng)域模型到傳統(tǒng)的關(guān)系型數(shù)據(jù)庫的映射,提供了一個使用方便的框架。Hibernate不僅Java類到數(shù)據(jù)庫表的映射(JavaSQL數(shù)據(jù)類型的映射SQLJDBC處理數(shù)HibernateJDBCJava程序員可以隨心所欲的使用對象編程思維來操縱數(shù)據(jù)庫。HibernateJDBC的場合,它JavaServlet/JSPWeb意義的是,HibernateEJB(EnterpriseJavaBeansJava應(yīng)用于企業(yè)計(jì)算的框架)J2EECMP,完成數(shù)據(jù)持久化的重任。Hibernate的優(yōu)缺點(diǎn)是Hibernate使用Java反射機(jī)制而不是字節(jié)碼增強(qiáng)程序來實(shí)現(xiàn)透明性。Hibernate的性能非常好,因?yàn)樗莻€輕量級框架。映射的靈活性很出色。它支持各種關(guān)系數(shù)據(jù)庫,從一對一到多對多的各種復(fù)雜關(guān)系。缺點(diǎn)是Hibernate限制您所使用的對象模型。例如,一個持久性類不能映射到多個表。mysql1、運(yùn)行mysql安裝文件。2Next
默認(rèn)完全Custom(用戶自定義”三個選項(xiàng),我們選擇“CustoDeveloperComponents(開發(fā)者部分”上左鍵單擊,選擇“Thisfeature,andallsubfeatures,willbeinstalledonlocalharddrive.MySQLServer(mysql服務(wù)器ClientPrograms(mysql客戶端程序)“Documentatio(文檔”也如此操作,以保證安裝所有文件。3"C:\ProgramFiles\MySQL\MySQL5.5\",如:也可以修改為:"D:mysql\"。4、現(xiàn)在開始安裝最后的配置,點(diǎn)Next,選擇服務(wù)器類型DeveloperMachin(開發(fā)測試類,mysql占用很少資源ServerMachine(服務(wù)器類型,mysql占用較多資源DedicatedMySQLServerMachine(專門的數(shù)據(jù)庫服務(wù)器,mysql占用所有可用資源ServerMachin滿。5NextmysqlMultifunctionalDatabase(通用多功能型,好TransactionalDatabaseOnly(服務(wù)器類型,專注于事務(wù)處理,一般MyISAMnon-transactiona,隨自己的用途而選擇了,我這TransactionalDatabaseOnlNext”繼續(xù)。6InnoDBTablespaceInnoDB數(shù)據(jù)庫文件選擇一個存儲空間,直接按“Next”繼續(xù)7、選擇您的網(wǎng)站的一般mysql訪問量,同時(shí)連接的數(shù)目,“DecisionSupport(DSS)/OLA(20個左右OnlineTransactionProcessing(OLT)500個左右、Manual Setting(OnlineTransactionProcessing(OLTPNext”繼續(xù)8TCP/IP連接,設(shè)定端口,如果不啟用,就只能在自己的機(jī)器上訪問mysqlNumber:33069、對mysql默認(rèn)數(shù)據(jù)庫語言編碼進(jìn)行設(shè)置,第一個是西文編碼,第二個是多字節(jié)utf8CharacterSetgbgb231gbkgb2312mysqlSETNAMESGBK(GBK其它值,視這里的設(shè)置而定,就可以正常的使用漢字(或其它文字)了,否則不能正Next”繼續(xù)10mysqlwindowsService名稱mysqlbinWindowsPAT(下的文件,而不用指出目錄名,比如連接mysql.exe-uusername-ppassword了,不用指出mysql.exe的完整地址,很方便,我這里全部打上了勾,Service不變。按“Next”繼續(xù)。1root用戶(超級管理)的密碼(默認(rèn)為空Newrootpassword”如果要修改,就在此填入新密碼(如果是重裝,并且之前已經(jīng)設(shè)置了密碼,在這里更改密碼可能會出錯,請留空,并將“ModifySecuritySettings安裝配置完成后另行修改密碼Confir(再輸一遍Enablerootaccessfromroot就不要勾上,如果要方便,就勾上它CreateAnAnonymous新建一設(shè)置完畢,按“Next”繼續(xù)。12、最后一個Next再加Execute,可以看到上面的步驟全部完成,安裝完成。13MySQLWincmd后-uroot-p"為空,所以直接再按回車即可。第三章 系統(tǒng)分析需求分析21成本、擴(kuò)大經(jīng)營規(guī)模,成為藥店?duì)I業(yè)者努力追求的目標(biāo)??尚行苑治黾夹g(shù)可行性Struts2,Spring,HibernateSSH其中:表現(xiàn)層使用HTML,jsp,JavaScriptStruts2SprinHibernate經(jīng)濟(jì)可行性經(jīng)濟(jì)可行性研究是對組織的經(jīng)濟(jì)現(xiàn)狀和投資能力進(jìn)行分析,對系統(tǒng)建設(shè)運(yùn)行和維護(hù)費(fèi)用進(jìn)行估算,對系統(tǒng)建成后可能取得的社會和經(jīng)濟(jì)效益進(jìn)行估計(jì)。由于本系統(tǒng)是為工作者提供方便快捷網(wǎng)絡(luò)化辦公內(nèi)容,登陸本系統(tǒng),即可使用系統(tǒng),系統(tǒng)成本主要集中在系統(tǒng)軟件的開發(fā)上,當(dāng)系統(tǒng)投入運(yùn)行后可以為人們節(jié)約大量的時(shí)間和精力。所帶來的方便及效益遠(yuǎn)遠(yuǎn)大于系統(tǒng)軟件的開發(fā)成本。在經(jīng)濟(jì)上完全可行。北京郵電大學(xué)畢業(yè)設(shè)計(jì)管理可行性采用模塊化編程,降低了錯誤產(chǎn)生次數(shù),提高了開發(fā)效率。對于完成同樣功能的進(jìn)程,法律可行性1、所有技術(shù)資料都為合法。2、開發(fā)過程中不存在知識產(chǎn)權(quán)問題。3、未抄襲任何系統(tǒng),不存在侵犯版權(quán)問題。4、開發(fā)過程中未涉及任何法律責(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ù)庫設(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類別信息實(shí)體圖tb-medicine實(shí)體圖nameid
medNocategoryIdphotoPath
reqCoun
tb-medicin
price
factoryAdddescriptiont medCounte圖3-3藥品實(shí)體圖tb-selldetailididSellTotalsellNameuseridselldetailsellPricemedidsellCountsellTime圖3-4藥品銷售實(shí)體圖tb-user實(shí)體圖ididusernameUsercreateTimepassword圖3-5管理員實(shí)體圖數(shù)據(jù)流程分析數(shù)據(jù)流程分析,即把數(shù)據(jù)在組織(或原系統(tǒng))內(nèi)部的流動情況抽象地獨(dú)立出來,舍去了具體組織機(jī)構(gòu)、信息載體、處理工作、物資、材料等,單從數(shù)據(jù)流動過程來考查實(shí)際業(yè)務(wù)的數(shù)據(jù)處理模式。數(shù)據(jù)流程分析主要包括對信息的流動、傳遞、處理、存儲等的分析。數(shù)據(jù)流程分析的目的就是要發(fā)現(xiàn)和解決數(shù)據(jù)流通中的問題。(DataFlow)(Process)和數(shù)據(jù)源(數(shù)據(jù)終點(diǎn))。數(shù)據(jù)流(DataFlow):個數(shù)據(jù)流可以是記錄、組合項(xiàng)或基本項(xiàng)。處理理的數(shù)據(jù)流為該處理的輸入數(shù)據(jù),離開處理的數(shù)據(jù)流為該處理的輸出數(shù)據(jù).以指向或離開數(shù)據(jù)存儲的箭頭表示。數(shù)據(jù)源及數(shù)據(jù)終點(diǎn):表示數(shù)據(jù)的來源或數(shù)據(jù)的去向,可以是一個組織或人員,其圖形符號用平行四邊形表示。數(shù)據(jù)流程圖符號說明:表示外部實(shí)體; 表示數(shù)據(jù)的處理過程表示數(shù)據(jù)存儲; 表示數(shù)據(jù)流的方向根據(jù)上面的分析我們可以對系統(tǒng)畫出如(圖3-6)所示的頂層數(shù)據(jù)流圖。管理管理員0藥品信息管理系統(tǒng)圖3-6系統(tǒng)頂層數(shù)據(jù)流圖第1層數(shù)據(jù)流圖是在頂層上的細(xì)分,從整體考慮數(shù)據(jù)流動及流向,如(圖3-7)所示。信息的更新信息的更新數(shù)據(jù)更新藥品信息藥品信息藥品信息存儲藥品信息顯示信息管理員管理員信息管理員信息處理信息更新管理員信息管理員信息存儲購買、銷售處理購買信息 生成銷售信息信息存儲處理后的購買信息圖3-7系統(tǒng)第1層數(shù)據(jù)流圖數(shù)據(jù)字典素條目、數(shù)據(jù)流、處理過程、數(shù)據(jù)存儲和外部實(shí)體。數(shù)據(jù)元素條目如下所示:名稱:管理員編號長度:20有關(guān)數(shù)據(jù)結(jié)構(gòu):管理員信息表有關(guān)編碼說明:Li XXX編號管理員代號數(shù)據(jù)結(jié)構(gòu)條目名稱:管理員信息說明:創(chuàng)建管理員信息記錄的數(shù)據(jù)結(jié)構(gòu):用戶名Id數(shù)據(jù)結(jié)構(gòu)條目名稱:管理員信息說明:創(chuàng)建管理員信息記錄的數(shù)據(jù)結(jié)構(gòu):用戶名Id密碼建立時(shí)間有關(guān)數(shù)據(jù)流、數(shù)據(jù)存儲:管理員信息名稱:藥品信息結(jié)構(gòu):藥品編號類別編號價(jià)格庫存廠址描述藥品圖片有關(guān)數(shù)據(jù)流、數(shù)據(jù)存儲:藥品信息數(shù)據(jù)流條目如下所示:數(shù)據(jù)流條目數(shù)據(jù)流名稱:藥品信息維護(hù)簡述:管理員對藥品信息維護(hù)數(shù)據(jù)來源:藥品信息數(shù)據(jù)流向:藥品信息的維護(hù)結(jié)果 數(shù)據(jù)流條目數(shù)據(jù)流名稱:藥品信息維護(hù)簡述:管理員對藥品信息維護(hù)數(shù)據(jù)來源:藥品信息數(shù)據(jù)流向:藥品信息的維護(hù)結(jié)果數(shù)據(jù)流條目數(shù)據(jù)流名稱:進(jìn)貨信息管理數(shù)據(jù)流向:藥品的進(jìn)貨管理結(jié)果數(shù)據(jù)流條目數(shù)據(jù)流名稱:藥品銷售管理簡述:管理員對藥品銷售情況管理數(shù)據(jù)來源:藥品銷售信息數(shù)據(jù)流向:藥品銷售信息的管理結(jié)果數(shù)據(jù)流條目數(shù)據(jù)流名稱:藥品銷售管理簡述:管理員對藥品銷售情況管理數(shù)據(jù)來源:藥品銷售信息數(shù)據(jù)流向:藥品銷售信息的管理結(jié)果數(shù)據(jù)流條目數(shù)據(jù)流名稱:藥品庫存管理簡述:管理員對藥品庫存情況管理數(shù)據(jù)來源:藥品庫存信息數(shù)據(jù)流向:藥品庫存信息的查詢結(jié)果數(shù)據(jù)存儲條目如下所示:數(shù)據(jù)存儲條目名稱:管理員信息說明:存儲管理員的相關(guān)信息結(jié)構(gòu):用戶名數(shù)據(jù)存儲條目名稱:管理員信息說明:存儲管理員的相關(guān)信息結(jié)構(gòu):用戶名密碼Id建立時(shí)間有關(guān)的數(shù)據(jù)流:管理員信息請求管理→管理員信息管理數(shù)據(jù)存儲條目名稱:藥品信息結(jié)構(gòu):藥品編號藥品名稱價(jià)格廠址有關(guān)的數(shù)據(jù)流:藥品信息管理請求→藥品信息管理處理功能條目如下所示:處理功能條目名稱:藥品信息維護(hù)處理功能條目名稱:藥品信息維護(hù)正確傳送處理邏輯:1.是否有漏填2.數(shù)據(jù)要求是否匹配處理功能條目名稱:進(jìn)貨登記輸入數(shù)據(jù):進(jìn)貨表中各字段輸出數(shù)據(jù):是否登記成功,進(jìn)貨藥品正確傳送處理邏輯:1.是否有漏填2.數(shù)據(jù)要求是否匹配包含的數(shù)據(jù)結(jié)構(gòu):管理員信息處理功能條目名稱:庫存查詢輸入數(shù)據(jù):藥品編號,藥品名稱輸出數(shù)據(jù):查詢的藥品庫存信息正確顯示處理邏輯:庫存報(bào)警處理功能條目名稱:庫存查詢輸入數(shù)據(jù):藥品編號,藥品名稱輸出數(shù)據(jù):查詢的藥品庫存信息正確顯示處理邏輯:庫存報(bào)警處理功能條目名稱:銷售登記輸入數(shù)據(jù):銷售表中各字段輸出數(shù)據(jù):是否登記成功,進(jìn)貨藥品正確傳送處理邏輯:1.是否有漏填2.數(shù)據(jù)要求是否匹配外部實(shí)體條目名稱:管理員說明:管理員外部實(shí)體條目名稱:管理員說明:管理員輸入數(shù)據(jù)流:管理員賬號,密碼輸出數(shù)據(jù)流:系統(tǒng)管理員管理個數(shù):1個系統(tǒng)用例圖登錄系統(tǒng)添加商品<<extends>><<extends>>商品登錄系統(tǒng)添加商品<<extends>><<extends>>商品刪除商品<<extends>><<uses>>類別添加修改商品<<uses>><<uses>>銷售管理<<uses>><<uses>>添加進(jìn)貨<<uses>><<uses>><<extends>>添加會員系統(tǒng)管理管理員<<extends>>退出系統(tǒng)修改密碼圖3-8管理員用例圖北京郵電大學(xué)畢業(yè)設(shè)計(jì)數(shù)據(jù)庫表管理員信息表:存放管理員信息的表,管理員的用戶名和密碼。藥品信息表:用來存儲藥品相關(guān)信息,包括藥品編號,藥品名稱,產(chǎn)地,藥品類型等。銷售信息表:用來存儲藥品銷售相關(guān)信息,包括藥品編號,藥品名稱,藥品價(jià)格,藥品數(shù)量,藥品銷售時(shí)間,操作人員,藥品總額。庫存信息表:用來存儲庫存相關(guān)信息,包括庫存編號,庫存量,庫存審核,庫存時(shí)間等?,F(xiàn)將數(shù)據(jù)庫表結(jié)構(gòu)介紹如下:藥品類別表:藥品信息表:
圖3-9藥品類別表銷售信息表:
圖3-10藥品信息表圖3-11銷售信息表17北京郵電大學(xué)畢業(yè)設(shè)計(jì)類型lintI類型lintI長度 十進(jìn)位:e :I111lol允許空,I 口 1I ::1皖-rr』a18北京郵電大學(xué)畢業(yè)設(shè)計(jì)第四章 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)系統(tǒng)功能設(shè)計(jì)流程圖及處理過程。圖4-1系統(tǒng)功能模塊圖管理員主要是對藥店管理系統(tǒng)進(jìn)行管理:系統(tǒng)用戶管理:管理藥店的管理員信息,可以添加、修改、刪除用戶信息。藥品類別管理:管理藥店的藥品類別信息,可以進(jìn)行添加、修改和刪除操作。刪除操作。清除、結(jié)賬的功能操作。進(jìn)貨信息查詢:輸入查詢號,即可以查看到貨物,然后選擇是否完成進(jìn)貨。銷售信息管理:可以查看所有藥品的銷售信息,今日明細(xì),也可以按照日期查詢。藥品進(jìn)貨管理:進(jìn)行日常的藥品進(jìn)貨登記,可以添加所需進(jìn)貨藥品數(shù)量。庫存信息瀏覽:此頁面顯示所有的庫存藥品信息,可以按照條件進(jìn)行查詢。系統(tǒng)功能界面介紹能界面。19北京郵電大學(xué)畢業(yè)設(shè)計(jì)系統(tǒng)登錄頁面本系統(tǒng)的登錄頁面如(圖4-2)所示。圖4-2系統(tǒng)登錄頁面(4-3)所示。開 始登錄失敗
接收登錄信息庫否 數(shù)據(jù)是否正是登錄成功結(jié) 束圖4-3系統(tǒng)的登錄流程圖系統(tǒng)首頁頁面進(jìn)入系統(tǒng)后,可以看到左面的各個功能模塊的導(dǎo)航,具體界面如(圖4-4)所示。20北京郵電大學(xué)畢業(yè)設(shè)計(jì)圖4-4系統(tǒng)管理界面藥品管理頁面添加藥品,管理員可以在此輸入藥品的編號,從而進(jìn)行下一步更詳細(xì)的藥品信息的添加,如果輸入編號之后已經(jīng)存在藥品,還可以修改原有藥品信息,如(圖4-5)示。圖4-5添加藥品頁面21北京郵電大學(xué)畢業(yè)設(shè)計(jì)模塊流程圖如(4-7)
圖4-6添加藥品結(jié)束開 始添加失敗 添加信息將信息更新到數(shù)據(jù)庫中否 更新是否成是添加成功結(jié) 束圖4-7添加藥品流程圖式展示出來,在此處可以對藥品進(jìn)行進(jìn)貨、修改、購買的操作。如(4-8)所示。22五一i1五一i1心,.,歡飽量壹臣藥量壹系統(tǒng)! tim置置比攸由凳曾冒哩購羞ii盧,歡硬量:壹醫(yī)朽蓄電彖扶,歡硬量:壹醫(yī)朽蓄電彖扶I佐侵礦酌叩i·逼量阮:阮汗九:1宜i奐攫雪暨.圖4-9庫存查詢頁面類別管理頁面在此添加藥品的類別和描述,即可以完成藥品類別的添加,如(圖4-10)所示。23北京郵電大學(xué)畢業(yè)設(shè)計(jì)圖4-10類別添加頁面在添加藥品類別之后,可以查看藥品類別,并且顯示類別的具體信息,如(圖4-11)所示。圖4-11查看藥品類別藥品購買頁面確認(rèn)信息后可以繼續(xù)購物也可以結(jié)賬完成購買,如(4-12)所示。24北京郵電大學(xué)畢業(yè)設(shè)計(jì)圖4-12選購藥品頁面該頁面可以瀏覽藥品具體信息,確認(rèn)是否購買,若選擇購買則跳轉(zhuǎn)到購買藥品頁面,如(圖4-13)所示。圖4-13查看藥品信息如(4-14)所示。25北京郵電大學(xué)畢業(yè)設(shè)計(jì)北京郵電大學(xué)畢業(yè)設(shè)計(jì)PAGEPAGE27二lli吐心!謾苯U租孵諞軞伈詛|l斗引三廠II|1互亢查看選購,在查看選購處可以繼續(xù)購買,清除購買或是結(jié)賬,如(亢巨.當(dāng)四,帳磷>)i翌迥EI!愕矗旦嘩巨.當(dāng)四,帳磷>)i翌迥EI!愕矗旦嘩歸_n;講I!共元已土11匣圖4-15查看選購頁面該功能模塊的流程圖如(圖4-16)所示。開 始4查毛藥品涫忠心f危妀茹呈干'桽吾藥品者羊廿十潔空購買千 結(jié)賬' 緋續(xù)購買' +結(jié)束圖4-16選購藥品流程圖銷售管理頁面在此處可以查看所有的銷售明細(xì),今日明細(xì),也可以按照日期來查詢,如(圖4-17)所示。.蘭茄位置箭蠢盲哩}〉.蘭茄位置箭蠢盲哩}〉箭蜇啊攫.圖4-17銷售明細(xì)查看頁面北京郵電大學(xué)畢業(yè)設(shè)計(jì)進(jìn)貨/需求管理頁面添加進(jìn)貨,在此處可以添加進(jìn)貨,并可以修改進(jìn)貨,如圖(4-18)所示。圖4-18添加進(jìn)貨頁面(圖所示。圖4-19查看進(jìn)貨頁面系統(tǒng)設(shè)置頁面管理員添加,輸入用戶名、密碼、確認(rèn)密碼就可以完成管理員的添加,如(圖所示。圖4-20管理員添加頁面28北京郵電大學(xué)畢業(yè)設(shè)計(jì)北京郵電大學(xué)畢業(yè)設(shè)計(jì)PAGEPAGE39查看管理員,添加后可以查看管理員信息,還可以進(jìn)行刪除操作,如(圖4-21)示。: 巨戶名 廠旺晌:刊14-{]t-{]BLH5圖4-21查看管理員頁面第五章 系統(tǒng)測試系統(tǒng)測試原理及測試原則現(xiàn)預(yù)計(jì)的功能。其目的是方便整個系統(tǒng)的實(shí)現(xiàn)。測試的原理理和方法。同時(shí),針對軟件的特性,必須找到合適的測試方法。試的周期如(5-1)所示。需求分析系統(tǒng)設(shè)計(jì)編制程序單元測試需求分析系統(tǒng)設(shè)計(jì)編制程序單元測試集成測試系統(tǒng)測試確認(rèn)測試使用維護(hù)測試階段5-1軟件測試周期示意圖系統(tǒng)測試原則程序員應(yīng)避免測試自己編寫的程序;測試用例的設(shè)計(jì)必須包括預(yù)期的輸出結(jié)果;測試用例應(yīng)包括有效的和期望的輸入情況,也要包括無效的和不期望的輸入情況;所有的測試都應(yīng)追溯到用戶需求,所有測試活動都應(yīng)該是有計(jì)劃的,并且計(jì)劃能夠得到保障。只檢查程序是否做了它應(yīng)該做的事這僅完成了測試工作的一半,另一半則是要檢查程序是否做了它不該做的事;一段程序中存在錯誤的概率與在這段程序中已發(fā)現(xiàn)的錯誤數(shù)成比例;測試上作必須有明確的目標(biāo);盡早地和不斷地進(jìn)行軟件測試;窮舉測試是不可能的,充分覆蓋程序邏輯是有可能的。系統(tǒng)測試的方法分類:從是否需要執(zhí)行被測軟件的角度,可分為靜態(tài)測試和動態(tài)測試。從測試是否針對系統(tǒng)的內(nèi)部結(jié)構(gòu)和具體實(shí)現(xiàn)算法的角度來看,可分為白盒測試和黑盒測試。黑盒測試(如數(shù)據(jù)庫或文件)的完整性。黑盒測試方法主要有等價(jià)類劃分、邊值分析、因果圖、錯誤推測等白盒測試測試項(xiàng)目說明表5.1 登陸藥店管理系統(tǒng)測試用例測試項(xiàng)目名測試項(xiàng)目名稱測試內(nèi)容執(zhí)行者登錄測試是否能成功登錄栗茜續(xù)表5.1輸入:密碼:liqian輸出:成功登錄,進(jìn)入管理頁面錯誤輸入1:用戶名或者密碼為空錯誤輸出:沒有提示,直接跳轉(zhuǎn)回原界面錯誤輸入2:輸入的用戶名和密碼不存在錯誤輸出:沒有提示,跳轉(zhuǎn)回原界面步驟及操作:進(jìn)入登錄的頁面輸入用戶名和密碼點(diǎn)擊登錄按鈕系統(tǒng)直接跳轉(zhuǎn)管理頁允許偏差 沒有進(jìn)入管理頁面條件 用戶名和密碼需要提前錄入數(shù)據(jù)庫表5.2 藥品添加測試用例測試項(xiàng)目名測試項(xiàng)目名稱測試內(nèi)容執(zhí)行者測試用例輸入:藥品添加測試是否能正確添加藥品栗茜藥品編碼:012藥品名稱:甘草片單價(jià):2元庫存數(shù)量:20出廠地址:哈藥六廠描述:止咳清熱輸出:添加成功,并把添加的藥品信息添加到原有藥品中錯誤輸入:請完成輸入操作錯誤輸入:錯誤輸出:藥品名稱輸入123錯誤輸入:錯誤輸出:請輸入數(shù)字
續(xù)表5.2
進(jìn)入添加藥品的頁面輸入各空項(xiàng)確定添加添加成功,轉(zhuǎn)到查看藥品頁面表5.3 藥品類別管理測試用例測試項(xiàng)目名測試項(xiàng)目名稱測試內(nèi)容執(zhí)行者輸入:藥品類別測試測試藥品類別是否能夠正確添加栗茜藥品類別:保健藥類別表述:保健身體輸出:進(jìn)入查看藥品類別頁面步驟及操作:進(jìn)入類別管理的主頁面在藥品類別內(nèi)輸入需要新加入的類別名稱在類別描述中輸入描述信息點(diǎn)擊確認(rèn)進(jìn)入類別查看頁面添加成功表5.4 購買藥品測試用例測試項(xiàng)目名測試項(xiàng)目名稱測試內(nèi)容執(zhí)行者測試用例購買藥品測試購買藥品功能是否能夠正確執(zhí)行栗茜續(xù)表5.4輸入:輸入:修改數(shù)量中的內(nèi)容,輸出:進(jìn)入已選購藥品頁面,并顯示應(yīng)付總金額步驟及操作:進(jìn)入購買藥品的主頁面選擇要購買的藥品點(diǎn)擊購買按鈕輸入要買藥品的數(shù)量點(diǎn)擊提交進(jìn)入已購買藥品頁面,并顯示應(yīng)付總金額表5.5 銷售管理測試用例測試項(xiàng)目名測試項(xiàng)目名稱測試內(nèi)容執(zhí)行者測試用例輸入:點(diǎn)擊查看明細(xì)輸出:銷售管理測試查看銷售明細(xì)是否能正確執(zhí)行栗茜顯示銷售明細(xì)頁面,內(nèi)容是所有銷售信息,并且顯示具體藥品內(nèi)容。步驟及操作:進(jìn)入銷售管理的主頁面顯示具體藥品銷售信息表5.6 進(jìn)需求管理測試用例測試項(xiàng)目名測試項(xiàng)目名稱測試內(nèi)容執(zhí)行者測試用例輸入:進(jìn)貨/需求管理測試添加進(jìn)貨,查看進(jìn)貨功能能否正確執(zhí)行栗茜在藥品編碼中輸入003輸出:40輸出:顯示藥品進(jìn)貨/需求信息續(xù)表5.6輸入輸入:數(shù)量中不輸入任何內(nèi)容錯誤輸入:數(shù)量不能為空步驟及操作:進(jìn)入進(jìn)貨/需求管理頁面輸入進(jìn)貨數(shù)量點(diǎn)擊提交按鈕顯示進(jìn)貨藥品在藥品信息的需求一欄中顯示需求數(shù)量表5.7 系統(tǒng)管理測試用例測試項(xiàng)目名測試項(xiàng)目名稱測試內(nèi)容執(zhí)行者測試用例輸入:系統(tǒng)管理測試各項(xiàng)功能能否正確執(zhí)行栗茜adminadmin在確認(rèn)密碼中輸入admin輸出:,顯示新添加的用戶信息輸入:在登錄界面中輸入剛添加的用戶名和密碼輸出:進(jìn)入藥店管理界面步驟及操作:進(jìn)入添加管理員主頁面在用戶名,密碼,確認(rèn)密碼中輸入信息點(diǎn)擊提交跳轉(zhuǎn)到所有用戶界面,并顯示新添加的用戶信息結(jié) 論藥品的基本信息,藥品銷售,藥品庫存和進(jìn)貨等幾個非常重要的操作。WEBWEB通過這次本科畢業(yè)設(shè)計(jì),使我對web開發(fā)有了更為深刻的理解,積累了一定的網(wǎng)站助下一一解決了,同時(shí)學(xué)到了許多技術(shù)知識和開發(fā)技巧。SQL語句來開發(fā)功能更后有可能的情況下進(jìn)一步改進(jìn)系統(tǒng)功能。IT致 謝光陰似箭,轉(zhuǎn)眼間大學(xué)生活已接近尾聲。在大學(xué)的最后階段,畢業(yè)論文是我的重中之重,在論文完成的過程中,除了我自己的努力之外,也凝聚了很多人的心血。所以我要對幫助我完成論文的所有人表示感謝。首先,我要對我的指導(dǎo)老師,表示誠摯的感謝。感謝我的老師,他放下神圣的師道尊嚴(yán),以朋友的身份告訴我怎樣完成這篇論文,怎樣搜集資料。他在忙碌的工作中擠出時(shí)間來審查、修改我的論文,嚴(yán)格把關(guān),循循善誘,在此我表示衷心感謝。其次,無私的幫助。最后,我要感謝我的父母,他們一直是我努力和學(xué)習(xí)的動力,感謝他們?yōu)槲宜冻龅囊磺?。老師給予指正。參考文獻(xiàn)[D]2012.JAVA[J].上海交通大學(xué),2010.C/S[J].展,2002.耿壯.基于JavaEE[D].電腦知識與技術(shù),2012.商宇,李麗.基于WebService[J],2005..WEBJSP2009.崔尚森,張白.Web[M].西安:西安電子科技大學(xué)出版社,2007,34.楊瑞龍.JavaEEWeb程序設(shè)計(jì)(Eclipse平臺)[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. 本站所有資源如無特殊說明,都需要本地電腦安裝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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 家長學(xué)校心理健康教育
- 貴州省遵義市匯川區(qū)航天高級中學(xué)2025屆高三第三次模擬考試化學(xué)試卷含解析
- APEX-國窖1573傳播思考及執(zhí)行策略
- 第一章 緒論電子課件
- 教職工心理健康知識講座
- 遼寧省撫順市新?lián)釁^(qū)2024-2025學(xué)年八年級下學(xué)期3月月考地理試題(含答案)
- 北京市通州區(qū)2024-2025學(xué)年高三上學(xué)期期末摸底考試數(shù)學(xué)試卷 含解析
- 幼兒園大班消防教育
- 初三物理陶瓷課件
- 中國碳化硅(SiC)功率器件市場現(xiàn)狀調(diào)研及需求潛力預(yù)測報(bào)告2025-2030年
- 2024年貴州省中考語文試卷真題(含答案逐題解析)
- 2024年重慶市中考數(shù)學(xué)試卷真題B卷(含答案逐題解析)
- 療愈環(huán)境與療愈建筑研究的發(fā)展與應(yīng)用初探
- 2024浙江臺州天臺縣公安局警務(wù)輔助人員招聘筆試參考題庫含答案解析
- DZ∕T 0275.2-2015 巖礦鑒定技術(shù)規(guī)范 第2部分:巖石薄片制樣(正式版)
- 新編秘書實(shí)務(wù)(第5版)-習(xí)題與答案 第7章 文書處理與檔案管理
- JTT327-2016 公路橋梁伸縮裝置通用技術(shù)條件
- 公司法(上海財(cái)經(jīng)大學(xué))智慧樹知到期末考試答案2024年
- 都江堰原理探析課件
- 2023年4月自考11746國際商務(wù)與國際營銷試題及答案
- 部編版初中七年級下冊語文第三單元(賣油翁)教案表格版
評論
0/150
提交評論