




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
-PAGE.z.陽(yáng)工程學(xué)院課程設(shè)計(jì)設(shè)計(jì)題目:WEB程序設(shè)計(jì)課程設(shè)計(jì)倉(cāng)庫(kù)管理網(wǎng)站的開(kāi)發(fā)系別信息工程系班級(jí)計(jì)專本121學(xué)生姓名劉智明、鄭永凱、李剛**19、27、21指導(dǎo)教師曾祥萍、費(fèi)雅潔職稱講師、教授起止日期:2013年06月24日起—至2013年07月03日止陽(yáng)工程學(xué)院課程設(shè)計(jì)任務(wù)書課程設(shè)計(jì)題目:WEB程序設(shè)計(jì)課程設(shè)計(jì)倉(cāng)庫(kù)管理網(wǎng)站的開(kāi)發(fā)系別信息工程系班級(jí)計(jì)專本121學(xué)生姓名劉智明、鄭永凱、李剛**19、27、21指導(dǎo)教師曾祥萍職稱講師課程設(shè)計(jì)進(jìn)行地點(diǎn):F座6樓任務(wù)下達(dá)時(shí)間:2013年12月13日起止日期:2013年6月17日起—至2013年7月3日止教研室主任:楊弘平2013年6月24日批準(zhǔn)-.z.任務(wù)計(jì)劃書1.設(shè)計(jì)的原始資料及依據(jù)通過(guò)課程設(shè)計(jì)使學(xué)生進(jìn)一步加深對(duì)課程內(nèi)容的理解,利用程序設(shè)計(jì)的基本思想進(jìn)行程序的開(kāi)發(fā),進(jìn)一步掌握編程方法和技巧,提高學(xué)生用程序的思想來(lái)解決實(shí)際問(wèn)題的能力。2.設(shè)計(jì)的主要內(nèi)容及要求設(shè)計(jì)題目:倉(cāng)庫(kù)管理網(wǎng)站開(kāi)發(fā)需要完成的功能:貨品入庫(kù)、貨品出庫(kù)、貨品歸還和貨品庫(kù)存查詢等3.對(duì)設(shè)計(jì)說(shuō)明書撰寫內(nèi)容、格式、字?jǐn)?shù)的要求⑴學(xué)生應(yīng)撰寫的內(nèi)容為:中文摘要和關(guān)鍵詞、目錄、正文、參考文獻(xiàn)等。課程設(shè)計(jì)說(shuō)明書(論文)的結(jié)構(gòu)及各部分內(nèi)容要求可參照《沈陽(yáng)工程學(xué)院課程設(shè)計(jì)(論文)撰寫規(guī)范》執(zhí)行。應(yīng)做到文理通順,內(nèi)容正確完整,書寫工整,裝訂整齊。⑵裝訂格式封面、任務(wù)書、成績(jī)?cè)u(píng)審意見(jiàn)表、摘要和關(guān)鍵詞、目錄、正文、結(jié)論、致謝、參考文獻(xiàn)。⑶課程設(shè)計(jì)說(shuō)明書(論文)是體現(xiàn)和總結(jié)課程設(shè)計(jì)成果的載體,一般不應(yīng)少于3000字。打印時(shí)采用A4紙,頁(yè)邊距均為20mm,正文采用宋體小四號(hào)字,行間距18磅。文中大標(biāo)題采用黑體小三號(hào)字,一級(jí)節(jié)標(biāo)題采用黑體四號(hào)字,二級(jí)節(jié)標(biāo)題采用黑體小四號(hào)字,三級(jí)節(jié)標(biāo)題采用黑體小四號(hào)字,表題與圖題采用宋體五號(hào)字。4.設(shè)計(jì)完成后應(yīng)提交成果的種類、數(shù)量、質(zhì)量等方面的要求⑴課程設(shè)計(jì)任務(wù)書⑵課程設(shè)計(jì)報(bào)告⑶設(shè)計(jì)成品(光盤)5.時(shí)間進(jìn)度安排順序階段日期計(jì)劃完成容備注1第一天查閱資料,充分解讀題目?jī)?nèi)容,小組分工,確定每個(gè)人的具體任務(wù)。1天2第二天數(shù)據(jù)庫(kù)設(shè)計(jì)及登陸界面的實(shí)現(xiàn)。1天3第三至第六天編制程序,單元測(cè)試。4天4第七,八天程序整合,綜合調(diào)試。2天5第九天答辯。1天6第十天撰寫課程設(shè)計(jì)報(bào)告。1天6.主要參考資料(文獻(xiàn))[1]耿祥義.JAVA2實(shí)用教程.:清華大學(xué)出版社,2006[2]陳旭東.JSP2.0應(yīng)用教程.:清華大學(xué)出版社,2006[3]黃明.JSP課程設(shè)計(jì).:電子工業(yè)出版社,2008[4]石志國(guó).JSP應(yīng)用教程.:清華大學(xué)出版社,2006[5]SharonZakhour.Java教程.:人民郵電出版社,2007-.z.沈陽(yáng)工程學(xué)院課程設(shè)計(jì)成績(jī)?cè)u(píng)定表系(部):信息工程系班級(jí):計(jì)專本121學(xué)生姓名:劉智明、鄭永凱、李剛指導(dǎo)教師評(píng)審意見(jiàn)評(píng)價(jià)內(nèi)容具體要求權(quán)重評(píng)分加權(quán)分調(diào)研論證能獨(dú)立查閱文獻(xiàn),收集資料;能制定課程設(shè)計(jì)方案和日程安排。0.15432工作能力態(tài)度工作態(tài)度認(rèn)真,遵守紀(jì)律,出勤情況是否良好,能夠獨(dú)立完成設(shè)計(jì)工作,0.25432工作量按期圓滿完成規(guī)定的設(shè)計(jì)任務(wù),工作量飽滿,難度適宜。0.25432說(shuō)明書的質(zhì)量說(shuō)明書立論正確,論述充分,結(jié)論嚴(yán)謹(jǐn)合理,文字通順,技術(shù)用語(yǔ)準(zhǔn)確,符號(hào)統(tǒng)一,編號(hào)齊全,圖表完備,書寫工整規(guī)范。0.55432指導(dǎo)教師評(píng)審成績(jī)(加權(quán)分合計(jì)乘以8)分加權(quán)分合計(jì)指導(dǎo)教師簽名:年月日評(píng)閱教師評(píng)審意見(jiàn)評(píng)價(jià)內(nèi)容具體要求權(quán)重評(píng)分加權(quán)分查閱文獻(xiàn)查閱文獻(xiàn)有一定廣泛性;有綜合歸納資料的能力0.25432工作量工作量飽滿,難度適中。0.55432說(shuō)明書的質(zhì)量說(shuō)明書立論正確,論述充分,結(jié)論嚴(yán)謹(jǐn)合理,文字通順,技術(shù)用語(yǔ)準(zhǔn)確,符號(hào)統(tǒng)一,編號(hào)齊全,圖表完備,書寫工整規(guī)范。0.35432評(píng)閱教師評(píng)審成績(jī)(加權(quán)分合計(jì)乘以4)分加權(quán)分合計(jì)評(píng)閱教師簽名:年月日答辯小組評(píng)審意見(jiàn)評(píng)價(jià)內(nèi)容具體要求權(quán)重評(píng)分加權(quán)分學(xué)生匯報(bào)匯報(bào)準(zhǔn)備充分,思路清晰;語(yǔ)言表達(dá)準(zhǔn)確,概念清楚,論點(diǎn)正確,有層次,有重點(diǎn),基本上反映了所完成任務(wù)的全部?jī)?nèi)容;時(shí)間符合要求。0.55432答辯思路清晰;回答問(wèn)題有理論依據(jù),基本概念清楚;主要問(wèn)題回答準(zhǔn)確,深入,有說(shuō)服力。0.55432答辯小組評(píng)審成績(jī)(加權(quán)分合計(jì)乘以8)分加權(quán)分合計(jì)答辯小組教師簽名:年月日課程設(shè)計(jì)總評(píng)成績(jī)分-.z.摘要倉(cāng)庫(kù)管理系統(tǒng)是為了實(shí)現(xiàn)中小型批發(fā)商管理的系統(tǒng)化、規(guī)范化和自動(dòng)化,從而為提高倉(cāng)庫(kù)管理的效率而設(shè)計(jì)的。它完全取代了原來(lái)一直用人工管理的工作方式,避免了由于管理人員的工作疏忽以及管理質(zhì)量問(wèn)題所造成的各種錯(cuò)誤,為及時(shí)、準(zhǔn)確、高效的完成倉(cāng)庫(kù)管理提供了強(qiáng)有力的工具和管理手段。倉(cāng)庫(kù)管理系統(tǒng)是一個(gè)中型數(shù)據(jù)庫(kù)管理系統(tǒng),它界面美觀、操作簡(jiǎn)單、安全性高,基本滿足了倉(cāng)庫(kù)管理的要求。本文是將我們平時(shí)學(xué)習(xí)的只是加以運(yùn)用。設(shè)計(jì)的題目是倉(cāng)庫(kù)管理網(wǎng)站的開(kāi)發(fā)。本倉(cāng)庫(kù)管理網(wǎng)站的主要功能包括:貨品入庫(kù)、貨品出庫(kù)、貨品歸還和貨品庫(kù)存查詢等功能。在具體實(shí)現(xiàn)該網(wǎng)站時(shí)我們遵照軟件工程中的流程來(lái)進(jìn)行具體步驟的操作。首先是進(jìn)行需求分析,了解該網(wǎng)站的價(jià)值。然后進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì),確定其中的各種邏輯關(guān)系以及各種訪問(wèn)類的實(shí)現(xiàn)。最后進(jìn)行系統(tǒng)具體功能的實(shí)現(xiàn)。根據(jù)之前的分析和考慮,將網(wǎng)站中的各種功能模塊化,然后根據(jù)各個(gè)模塊的具體功能,通過(guò)編碼和各種工具進(jìn)行實(shí)現(xiàn)。本網(wǎng)站的開(kāi)發(fā)選取JSP+JavaBean+Servlet的開(kāi)發(fā)模式,在系統(tǒng)開(kāi)發(fā)過(guò)程中,還會(huì)使用Aja*技術(shù)進(jìn)行異步提交數(shù)據(jù)和CSS樣式控制頁(yè)面布局。關(guān)鍵字:倉(cāng)庫(kù)管理網(wǎng)站,JSP,CSS,Javabean,ServletAbstractThewarehousemanagementsystemisinordertoachievethesmallandmedium-sizedwholesalersmanagementsystematization,standardizationandautomation,soastoimprovetheefficiencyofwarehousemanagement.Itcompletelyreplacedtheoriginalhasbeenusingartificialmanagementwayofworking,toavoidthequalityproblembecausemanagersjoboversightandmanagementofallkindsoferror,fortimely,accurateandefficientcompletewarehousemanagementprovidespowerfultoolsandmanagementmeans.Warehousemanagementsystemisamedium-sizeddatabasemanagementsystem,itsinterfaceaesthetics,simpleoperation,highsafety,basicmeettherequirementsofthewarehousemanagement.Thisarticleistowelearnisjusttouseatordinarytimes.Designonthetopicofwarehousemanagementwebsitedevelopment.Thewarehousemanagementofwebsite'smainfunctionincludes:storageofgoods,goodsdelivery,goodsreturnandgoodsinventoryqueries,andotherfunctions.Intheconcreteimplementationthewebsitewhenwefollowthesoftwareengineeringprocessforspecificstepsoftheoperation.Firstcarriesonthedemandanalysis,andunderstandthevalueofthesite.Thencarriesonthedatabasedesign,todeterminethevariouslogicalrelationshipandtherealizationofthevariousaccessclass.Finallytherealizationofthefunctionofsystemspecific.Accordingtopreviousanalysisandconsideration,fromthesiteallsortsoffunctionmodular,thenaccordingtothespecificfunctionofeachmodule,implementationbycodingandvarioustools.DevelopmentonthissitetoselectJSP+JavaBean+Servletdevelopmentpattern,intheprocessofsystemdevelopment,alsouseAja*asynchronoussubmissiondataandcontrolCSSpagelayouts.Keyword:warehousemanagementwebsite,JSP,CSS,Javabean,Servlet-.z.目錄摘要IAbstractII目錄III緒論1第一章.系統(tǒng)設(shè)計(jì)21.1需求分析21.2功能設(shè)計(jì)網(wǎng)頁(yè)的組成\h2第二章.數(shù)據(jù)庫(kù)設(shè)計(jì)42.1數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)42.2數(shù)據(jù)庫(kù)的訪問(wèn)類實(shí)現(xiàn)6第三章.網(wǎng)站的實(shí)現(xiàn)83.1倉(cāng)庫(kù)人員登錄模塊83.2貨品入貨153.3貨品出貨037165\h263.4貨品歸還323.5貨品庫(kù)存323.6貨品修改33結(jié)論34致謝35參考文獻(xiàn)1-.z.緒論隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)的不斷發(fā)展,其強(qiáng)大的功能已被人們深刻地認(rèn)識(shí)到,它已經(jīng)進(jìn)入了人類社會(huì)的各個(gè)領(lǐng)域并發(fā)揮著越來(lái)越重要的作用。同時(shí),它在國(guó)內(nèi)外企業(yè)中的發(fā)展、應(yīng)用已經(jīng)趨于穩(wěn)定和成熟。同時(shí)隨著經(jīng)濟(jì)的不斷繁榮和中小型批發(fā)商規(guī)模的不斷擴(kuò)大,倉(cāng)庫(kù)在批發(fā)商的整個(gè)供應(yīng)鏈中起著至關(guān)重要的作用,如果不能保證正確的進(jìn)貨和庫(kù)存控制及發(fā)貨,將會(huì)導(dǎo)致管理費(fèi)用的增加,服務(wù)質(zhì)量難以得到保證,從而影響批發(fā)商的競(jìng)爭(zhēng)力。傳統(tǒng)簡(jiǎn)單、靜態(tài)的倉(cāng)儲(chǔ)管理已無(wú)法保證各種資源的高效利用。如今的倉(cāng)庫(kù)作業(yè)和庫(kù)存控制作業(yè)已十分復(fù)雜化多樣化,僅靠人工記憶和手工錄入,不但費(fèi)時(shí)費(fèi)力,而且容易出錯(cuò),給批發(fā)商帶來(lái)很大損失。因此,高效方便的倉(cāng)庫(kù)管理網(wǎng)站,可以為生產(chǎn)經(jīng)營(yíng)提供堅(jiān)強(qiáng)的后盾和有力的支持。然而如今大部分中小型批發(fā)商對(duì)倉(cāng)庫(kù)的管理卻始終處在僅靠人工記憶和手工錄入的傳統(tǒng)狀態(tài)。本倉(cāng)庫(kù)管理網(wǎng)站就是針對(duì)中小型批發(fā)商的需要開(kāi)發(fā)的。它與大型企業(yè)的倉(cāng)庫(kù)管理系統(tǒng)有很大不同。由于批發(fā)商的倉(cāng)庫(kù)相對(duì)于企業(yè)的較小,所以其特點(diǎn)就是功能簡(jiǎn)單而實(shí)用,擴(kuò)充性好,界面簡(jiǎn)潔而大方。本網(wǎng)站的開(kāi)發(fā)選取JSP+JavaBean+Servlet的開(kāi)發(fā)模式,在系統(tǒng)開(kāi)發(fā)過(guò)程中,還會(huì)使用Aja*技術(shù)進(jìn)行異步提交數(shù)據(jù)和CSS樣式控制頁(yè)面布局。系統(tǒng)設(shè)計(jì)在著手開(kāi)發(fā)網(wǎng)站之前,首先要對(duì)這個(gè)網(wǎng)站進(jìn)行分析和設(shè)計(jì)。要知道為什么做這個(gè)網(wǎng)站。這個(gè)網(wǎng)站要實(shí)現(xiàn)哪些功能,如何去實(shí)現(xiàn)這些功能,以及如何提高這些功能使用的安全性。解決這些問(wèn)題,首先要對(duì)本網(wǎng)站進(jìn)行需求分析,然后要對(duì)本網(wǎng)站的功能進(jìn)行設(shè)計(jì)。需求分析很多企業(yè)都有自己的倉(cāng)庫(kù),所以如何管理越來(lái)月龐大復(fù)雜的倉(cāng)庫(kù),也就成為每個(gè)企業(yè)都必須面對(duì)的問(wèn)題。根據(jù)企業(yè)的不同,倉(cāng)庫(kù)的形式也不完全相似,但是基本的功能還是一樣的。該系統(tǒng)選取比較基本的功能模塊來(lái)講解倉(cāng)庫(kù)管理系統(tǒng)的實(shí)現(xiàn)。根據(jù)倉(cāng)庫(kù)的性質(zhì),對(duì)倉(cāng)庫(kù)中的貨品要能夠進(jìn)行入庫(kù)和出庫(kù)管理,根據(jù)貨品種類要能夠進(jìn)行分類管理,并且對(duì)倉(cāng)庫(kù)現(xiàn)有貨品情況要能夠進(jìn)行查詢。而且對(duì)于一個(gè)系統(tǒng)而言,倉(cāng)庫(kù)管理要有倉(cāng)庫(kù)人員,倉(cāng)庫(kù)人員登錄系統(tǒng)后可以進(jìn)行對(duì)各模塊的操作。系統(tǒng)功能模塊圖如圖1.1所示。倉(cāng)庫(kù)管理網(wǎng)站倉(cāng)庫(kù)管理網(wǎng)站貨品修改貨品歸還貨品歸還貨品出庫(kù)貨品入庫(kù)添加客戶倉(cāng)庫(kù)登陸貨品修改貨品歸還貨品歸還貨品出庫(kù)貨品入庫(kù)添加客戶倉(cāng)庫(kù)登陸圖1.11.2功能設(shè)計(jì)網(wǎng)頁(yè)的組成根據(jù)前面的網(wǎng)站需求分析,將該系統(tǒng)劃分為七個(gè)基本模塊,分別為倉(cāng)庫(kù)管理登陸、添加客戶模塊、貨品入庫(kù)模塊、貨品出庫(kù)模塊、貨品歸還模塊、貨品庫(kù)存模塊和貨品修改模塊。下面對(duì)這幾個(gè)模塊進(jìn)行分析。1.倉(cāng)庫(kù)登陸倉(cāng)庫(kù)由倉(cāng)庫(kù)管理人員進(jìn)行管理,倉(cāng)庫(kù)管理人員通過(guò)登錄來(lái)獲取倉(cāng)庫(kù)管理網(wǎng)站認(rèn)可,然后進(jìn)行管理操作。2.添加客戶倉(cāng)庫(kù)貨品出庫(kù)所針對(duì)的對(duì)象是客戶,客戶借貨時(shí)必須要有倉(cāng)庫(kù)的借貨憑證。因此,如果客戶沒(méi)有借貨憑證,而又想從倉(cāng)庫(kù)借出貨品時(shí),就需要為倉(cāng)庫(kù)添加一名客戶。添加客戶采取的形勢(shì)是,客戶按要求向倉(cāng)庫(kù)管理人員提供自己的相關(guān)信息,倉(cāng)庫(kù)管理人員成功添加該客戶后,網(wǎng)站返回一個(gè)用戶帳號(hào),這個(gè)帳號(hào)就作為此客戶以后向倉(cāng)庫(kù)借出貨品的憑證。3.貨品入庫(kù)貨品入庫(kù)就是向倉(cāng)庫(kù)中添加貨品。倉(cāng)庫(kù)管理人員通過(guò)貨品名稱向倉(cāng)庫(kù)中添加該貨品,該貨品如果已經(jīng)存在,則就將該貨品的數(shù)量在已有的基礎(chǔ)上進(jìn)行增加;如果在倉(cāng)庫(kù)中不存在,則添加后還需要為該貨品設(shè)置一個(gè)心的貨品編號(hào)。4.貨品出庫(kù)貨品出庫(kù)就是客戶從倉(cāng)庫(kù)中借出貨品。貨品出庫(kù)時(shí)需要客戶向倉(cāng)庫(kù)管理人員提供自己的帳號(hào),并通過(guò)帳號(hào)密碼進(jìn)行驗(yàn)證。同時(shí),客戶要求提供待借貨品數(shù)量。系統(tǒng)在確認(rèn)向該客戶借出貨品之前,還需要檢查客戶所提供的帳號(hào)上是否有過(guò)期未歸還的貨品,如果有,將拒絕向此帳號(hào)借出貨品。貨品出庫(kù)如果成功,系統(tǒng)將自動(dòng)生成一個(gè)貨單編號(hào),供客戶歸還貨品時(shí)使用。5.貨品歸還貨品歸還具有時(shí)間限制,貨品借出后,如果客戶不在限制時(shí)間內(nèi)歸還該貨品,則借貨時(shí)所使用的帳號(hào)將無(wú)法再?gòu)膫}(cāng)庫(kù)中借出貨品。貨品歸還時(shí),客戶需要提供貨單編號(hào)、待還貨品編號(hào)和待還貨品數(shù)量。體統(tǒng)在核實(shí)多有信息后,刪除該貨單信息。6.貨品庫(kù)存?zhèn)}庫(kù)管理人員需要獲取貨品存庫(kù)信息。該信息可以是倉(cāng)庫(kù)中所有貨品的信息,也可以是倉(cāng)庫(kù)人員所要查詢的貨品信息。7.貨品修改倉(cāng)庫(kù)管理人員通過(guò)查詢獲得貨品的信息后,可以修改該貨品信息。貨品信息中除了貨品編號(hào)以外的信息都可以修改。第二章.數(shù)據(jù)庫(kù)設(shè)計(jì)前面對(duì)網(wǎng)站需求進(jìn)行了分析,也對(duì)網(wǎng)站功能有了初步設(shè)計(jì),接下來(lái)就是對(duì)網(wǎng)站數(shù)據(jù)庫(kù)進(jìn)行邏輯設(shè)計(jì)和訪問(wèn)類實(shí)現(xiàn)。數(shù)據(jù)庫(kù)設(shè)計(jì)是網(wǎng)站實(shí)現(xiàn)的最關(guān)鍵環(huán)節(jié),會(huì)直接影響網(wǎng)站功能的實(shí)現(xiàn)。結(jié)合網(wǎng)站功能設(shè)計(jì),確定本網(wǎng)站需要如下七個(gè)表:倉(cāng)庫(kù)人員信息表、貨品信息表、客戶信息表、貨品出庫(kù)信息表、貨品歸還時(shí)限信息表、貨品主類信息表和貨品子類信息表。本網(wǎng)站選用MySQL數(shù)據(jù)庫(kù)。2.1數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)首先在MySQL中為倉(cāng)庫(kù)管理系統(tǒng)創(chuàng)建數(shù)據(jù)庫(kù)warehouse,然后在該數(shù)據(jù)庫(kù)中創(chuàng)建系統(tǒng)所需的七個(gè)表,這七個(gè)表的字段信息如下。倉(cāng)庫(kù)人員信息表WarehouseManager,如圖2.11.圖2.11.2貨品信息表Goods,如圖2.12.圖2.12.3.客戶信息表Boeeower,如圖2.13圖2.134貨品出庫(kù)信息表Lend,如圖2.14圖2.145貨品歸還時(shí)限信息表TimeLimit,如圖2.15圖2.156貨品主類信息表FirstType,如圖2.16圖2.167貨品自類信息表GoodsType,如圖2.17圖2.172.2數(shù)據(jù)庫(kù)的訪問(wèn)類實(shí)現(xiàn)結(jié)合前面數(shù)據(jù)庫(kù)的分析與設(shè)計(jì),創(chuàng)建Warehouse和相應(yīng)的數(shù)據(jù)表。接下來(lái),進(jìn)行相應(yīng)的程序?qū)崿F(xiàn)。則首先創(chuàng)建應(yīng)用程序目錄。在Tomcat6.0\webapps文件夾下創(chuàng)建Warehouse文件夾,作為應(yīng)用程序根目錄。應(yīng)用程序目錄結(jié)構(gòu)圖如圖2.21圖2.21在上圖中,文件夾用來(lái)存放所有用來(lái)存放所有包含java類文件的文件夾。其中dao文件夾中新建數(shù)據(jù)庫(kù)的訪問(wèn)類文件DataBaseConn.java,其內(nèi)容如下所示:packagedao;importjava.sql.*;publicclassDataBaseConn{ publicConnectionconn=null; publicvoidcreateConn(){ StringDRIVER=".mysql.jdbc.Driver"; Stringurl="jdbc:mysql://localhost:3306/warehouse"user=root&password=&useUnicode=true&characterEncoding=gb2312"; if(conn==null){ try{ Class.forName(DRIVER).newInstance(); conn=DriverManager.getConnection(url); }catch(E*ceptione){ e.printStackTrace(); } } } publicConnectiongetConn(){ if(conn==null){ createConn(); } returnconn; } publicvoidcloseConn(){ if(conn!=null){ try{ conn.close(); conn=null; }catch(E*ceptione){ e.printStackTrace();} } }}第三章.網(wǎng)站的實(shí)現(xiàn)倉(cāng)庫(kù)管理人員在倉(cāng)庫(kù)登陸頁(yè)面上進(jìn)行登陸驗(yàn)證,如果登陸成功,將進(jìn)入歡迎頁(yè)面;如果登錄失敗,則返回到登錄頁(yè)面。倉(cāng)庫(kù)登錄成功后才可以對(duì)倉(cāng)庫(kù)進(jìn)行管理,否則倉(cāng)庫(kù)管理人員想要進(jìn)行管理操作時(shí),頁(yè)面會(huì)始終轉(zhuǎn)向登錄頁(yè)面。3.1倉(cāng)庫(kù)人員登錄模塊倉(cāng)庫(kù)管理人員登錄模塊登錄模塊主要用于倉(cāng)庫(kù)管理人員登錄,當(dāng)倉(cāng)庫(kù)人員成功登陸后,需要設(shè)置一個(gè)session對(duì)象用來(lái)保存登陸用戶名,這樣就可以記錄該人員的登錄狀態(tài)。當(dāng)他訪問(wèn)本站其他頁(yè)面時(shí),就可以通過(guò)這個(gè)session對(duì)象的值來(lái)判斷其是否已經(jīng)登錄。創(chuàng)建WarehouseManager.java,對(duì)應(yīng)倉(cāng)庫(kù)人員信息表,是可視化的JavaBean文件。代碼如下:packageentity;publicclassWarehouseManager{ privateintmId; privateStringmName; privateStringmPassword; publicintgetMId(){ returnmId; } publicvoidsetMId(intid){ mId=id; } publicStringgetMName(){ returnmName; } publicvoidsetMName(Stringname){ mName=name; } publicStringgetMPassword(){ returnmPassword; } publicvoidsetMPassword(Stringpassword){mPassword=password; }}創(chuàng)建登錄頁(yè)面,如果登錄成功就跳轉(zhuǎn)到歡迎頁(yè)面。失敗的話就放回到登錄頁(yè)面。登錄頁(yè)面代碼如下:<%pagelanguage="java"import="java.util.*"pageEncoding="gb2312"%><!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"><html><head><title>登錄頁(yè)面</title> <metahttp-equiv="pragma"content="no-cache"> <metahttp-equiv="cache-control"content="no-cache"><metahttp-equiv="e*pires"content="0"> <metahttp-equiv="keywords"content="keyword1,keyword2,keyword3"> <metahttp-equiv="description"content="Thisismypage"> <linkrel="stylesheet"type="te*t/css"href="css/styles.css"></head><body><center> <divid="currentPoint">當(dāng)前位置:管理員登錄 </div><divid="login"> <divid="topPic1"></div> <divid="topPic2"></div> <formclass="login"name="loginForm"action="servlet/Login"method="post"onsubmit="returncheckLogin()"/>用戶名: <inputtype="te*t"id="nameID"name="mName"ma*length="16"onblur="checkMName()"/> <spanid="nameError"></span> <br/> <br/>密 碼: <inputtype="password"id="passwordID"name="mPassword"ma*length="12"onblur="checkMPassword()"/> <spanid="passwordError"></span> <br/> <br/> <inputtype="submit"name="loginSubmit"value="確定"/> <inputtype="reset"name="loginReset"value="取消"/> <scripttype="te*t/javascript"src="js/global.js"></script> </form> <divid="bottomPic1"></div> <divid="bottomPic2"></div></div></center></body></html>其截圖如下圖3.11:圖3.11歡迎頁(yè)面如下:<%pagelanguage="java"import="java.util.*"pageEncoding="gb2312"%><!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"><html><head><title></title> <metahttp-equiv="pragma"content="no-cache"><metahttp-equiv="cache-control"content="no-cache"> <metahttp-equiv="e*pires"content="0"><metahttp-equiv="keywords"content="keyword1,keyword2,keyword3"><metahttp-equiv="description"content="Thisismypage"> <linkrel="stylesheet"type="te*t/css"href="css/styles.css"></head><body> <center> <divid="currentPoint">當(dāng)前位置:歡迎頁(yè)面 </div><divid="warehouseManage"> <divid="topPic1"></div> <divid="topPic2"></div> <% StringmName=(String)session.getAttribute("loginName"); if(mName==null){ %> <jsp:forwardpage="login.jsp"></jsp:forward> <% } %> <divstyle="font-size:20p*;width:600p*;padding:30p*;">歡迎您:<fontstyle="color:red;font-weight:bold;font-size:20p*;"><%=mName%></font> </div> <divstyle="font-size:16p*;width:600p*;"> <ul> <listyle="border-bottom:1p*solidblack;">一切為您著想 為您著想一切 </li> <li>計(jì)專本121</li> </ul> </div> <divid="bottomPic1"></div> <divid="bottomPic2"></div> </div></center></body></html>其頁(yè)面如圖3.12:圖3.12其中在servlet文件夾中創(chuàng)建login.java類。代碼如下:packageservlet;importjava.io.IOE*ception;importjava.io.PrintWriter;importjava*.servlet.ServletE*ception;importjava*.servlet.http.HttpServlet;importjava*.servlet.http.HttpServletRequest;importjava*.servlet.http.HttpServletResponse;importjava*.servlet.http.HttpSession;importdao.DataManage;publicclassLogine*tendsHttpServlet{ publicvoiddestroy(){ super.destroy(); } publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletE*ception,IOE*ception{ doPost(request,response); } publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletE*ception,IOE*ception{ //設(shè)置傳入傳出的字符編碼格式為"gb2312" request.setCharacterEncoding("gb2312"); response.setCharacterEncoding("gb2312"); response.setContentType("te*t/html"); PrintWriterout=response.getWriter(); HttpSessionsession=request.getSession(); DataManagedm=newDataManage(); //獲取登錄頁(yè)面的信息 StringmName=request.getParameter("mName");//登錄用戶名 StringmPassword=request.getParameter("mPassword");//登錄密碼 booleanflag=dm.loginJudge(mName,mPassword); if(flag){ //如果賬號(hào)和密碼正確,設(shè)置一個(gè)session來(lái)保存用戶名 if(session.getAttribute("loginName")!=null){ session.removeAttribute("loginName"); } session.setAttribute("loginName",mName); out.print("<script>top.location.href='Redirect"menu=warehouseManage.jsp'</script>");}else{ //如果賬號(hào)和密碼不正確 out.print("<script>alert('用戶名或密碼錯(cuò)誤!');history.go(-1);</script>"); } out.flush(); out.close(); } publicvoidinit()throwsServletE*ception{ }}定義一個(gè)登陸檢查方法:LoginJudge()packagedao;importjava.sql.*;importjava.util.*;importentity.*;publicclassDataManage{ DataBaseConndbc=newDataBaseConn(); //檢查登錄的用戶名和密碼是否正確publicbooleanloginJudge(StringmName,StringmPassword){ booleanflag=false; Stringsql="select*fromWarehouseManagerwheremName="andmPassword=""; PreparedStatementpsmt=null; try{ psmt=dbc.getConn().prepareStatement(sql); psmt.setString(1,mName); psmt.setString(2,mPassword); ResultSetrs=psmt.e*ecuteQuery(); if(rs.ne*t()){ flag=true; } psmt.close(); }catch(E*ceptione){ e.printStackTrace(); }finally{ dbc.closeConn();} returnflag; }3.2貨品入貨貨品入庫(kù)指向倉(cāng)庫(kù)添加貨物,在添加貨品時(shí),首先要填寫貨品名稱,根據(jù)這個(gè)名稱檢查倉(cāng)庫(kù)中是否已經(jīng)存在該貨品。如果已經(jīng)存在,則只需要填寫貨品新入庫(kù)數(shù)量;如果不存在,則除了需要填寫貨品新入庫(kù)數(shù)量以外,還需要填寫貨品廠商、貨品租金、需要選擇貨品所屬主類以及貨品所屬子類,另外貨品備注可以根據(jù)需要填寫或者不寫。1.創(chuàng)建貨品入庫(kù)界面,代碼如下:<%pagelanguage="java"import="java.util.*"pageEncoding="gb2312"%><jsp:useBeanid="dm"scope="page"class="dao.DataManage"></jsp:useBean><%pageimport="entity.*"%><% request.setCharacterEncoding("gb2312"); response.setCharacterEncoding("gb2312");%><!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"><html> <head> <title></title> <!--省略部分頭文件代碼--> <metahttp-equiv="pragma"content="no-cache"> <metahttp-equiv="cache-control"content="no-cache"> <metahttp-equiv="e*pires"content="0"> <metahttp-equiv="keywords"content="keyword1,keyword2,keyword3"> <metahttp-equiv="description"content="Thisismypage"> <linkrel="stylesheet"type="te*t/css"href="css/styles.css"> </head> <body> <center> <divid="currentPoint">當(dāng)前位置:貨品入庫(kù) </div><divid="hprk"> <divid="topPic1"></div> <divid="topPic2"></div> <formclass="hprk"name="hprkForm"action="servlet/GoodsManage"menu=hprk"method="post"onsubmit="returncheckHprk()">貨品名稱: <inputtype="te*t"id="gNameID"name="gName"ma*length="10"onblur="checkGName()"/> <spanid="gNameError"></span> <br/><br/>貨品數(shù)量: <inputtype="te*t"id="gAmountID"name="gAmount"ma*length="5"onblur="checkGAmount()"/> <spanid="gAmountError"></span> <br/><br/> <divid="e*ist"style="display:none;"></div> <divid="noE*ist"style="display:block;">貨品廠商: <inputtype="te*t"id="gFactoryID"name="gFactory"ma*length="20"onblur="checkGFactory()"/> <spanid="gFactoryError"></span> <br/><br/>貨品主類: <selectid="fIdID"name="fId"onchange="changeGType()"> <optionvalue="">--貨品主類--</option> <optionvalue="addFirstType">--添加新類--</option> <% FirstTypefirstType=newFirstType(); List<FirstType>firstTypeList=newArrayList<FirstType>(); firstTypeList=dm.allFirstType(); Iterator<FirstType>iter=firstTypeList.iterator(); while(iter.hasNe*t()){ firstType=(FirstType)iter.ne*t(); %> <optionvalue="<%=firstType.getFId()%>"><%=firstType.getFName()%></option> <% } %> </select> 貨品子類: <selectid="tIdID"name="tId"onblur="checkTId()" onchange="checkTId()"> <optionvalue="">--貨品子類--</option> <optionvalue="addSecondType">--添加新類--</option> </select> <spanid="tIdError"></span> <br/><br/> <spanid="addFirstType"style="display:none;"> <fontcolor="red">新增主類名稱:</font> <inputtype="te*t"name="fName"id="fNameID"ma*length="8"onblur="checkFName()"/> <spanid="fNameError"></span> <br/><br/> </span> <spanid="addSecondType"style="display:none;"> <fontcolor="red">新增子類名稱:</font> <inputtype="te*t"name="tName"id="tNameID"ma*length="8"onblur="checkTName()"/> <spanid="tNameError"></span> <br/><br/> </span>貨品租金: <inputtype="te*t"id="gRentID"name="gRent"ma*length="5"style="width:40p*;"onblur="checkGRent()"/>元/天 <spanid="gRentError"></span> <br/><br/>貨品備注: <inputtype="te*t"id="gRemarkID"name="gRemark"ma*length="50"/> <spanid="gRemarkError"></span> <br/><br/> </div> <inputtype="submit"name="hprkSubmit"value="確定"/> <inputtype="reset"name="hprkReset"value="重置"/> </form> <divid="bottomPic1"></div> <divid="bottomPic2"></div> </div> </center> </body> <scripttype="te*t/javascript"> <!-- varisE*ist="no"; varreq=false;//異步請(qǐng)求提交對(duì)象 //檢查新增貨品主類是否符合規(guī)范 functioncheckFName(){ varspan=document.getElementById("fNameError"); varfName=document.getElementById("fNameID").value; varpattern=/^([a-zA-Z0-9]|[\u4e00-\u9fa5]){1,}$/; if(!pattern.test(fName)){ document.getElementById("fNameError").innerHTML="<fontstyle='color:red'>×</font>貨品主類填寫不符合規(guī)范!"; returnfalse; }else{ init(); varreplayValue=""; req.onreadystatechange=function(){ if(req.readyState==4){ if(req.status==200){ replayValue=req.responseTe*t.trim(); if(replayValue==""){ span.innerHTML=""; }else{ span.innerHTML=replayValue; } } } }; req.open("get","checkFName.jsp"fName="+fName,true); req.send(null); if(""==replayValue){ returntrue; }else{ returnfalse;} } } //檢查新增貨品子類是否符合規(guī)范functioncheckTName(){ vartName=document.getElementById("tNameID").value; varpattern=/^([a-zA-Z0-9]|[\u4e00-\u9fa5]){1,}$/; if(!pattern.test(tName)){ document.getElementById("tNameError").innerHTML="<fontstyle='color:red'>×</font>貨品子類填寫不符合規(guī)范!"; returnfalse; }else{ returntrue;} } //1、初始化異步請(qǐng)求提交對(duì)象functioninit(){ if(window.Active*Object){ //IE req=newActive*Object("Microsoft.*MLHTTP"); }else{ //firefo* req=new*MLHttpRequest(); } } //發(fā)送請(qǐng)求 functioncheckGName(){ vargName=document.getElementById("gNameID").value; varpattern=/^\s{0,}$/; if(!pattern.test(gName)){ document.getElementById("gNameError").innerHTML=""; init(); //2、指定處理返回值的函數(shù) req.onreadystatechange=aboutGName; //3、打開(kāi)到資源的連接 req.open("get","checkGName.jsp"gName="+gName,true); //4、發(fā)送請(qǐng)求 req.send(null); }else{ document.getElementById("gNameError").innerHTML="<fontstyle='color:red'>×</font>貨品名稱不能為空!"; } } //5、處理返回值 functionaboutGName(){ if(req.readyState==4){ if(req.status==200){ //獲取返回值 varreplayValue=req.responseTe*t.trim(); vare*ist=document.getElementById("e*ist"); varnoE*ist=document.getElementById("noE*ist"); if(replayValue==""){ isE*ist="no"; e*ist.style.display="none"; noE*ist.style.display="block"; }else{ isE*ist="yes"; noE*ist.style.display="none"; e*ist.style.display="block"; e*ist.innerHTML=replayValue; } } } } //級(jí)聯(lián)菜單 functionchangeGType(){ init();//獲得req; req.onreadystatechange=goodsType;//指定處理返回值的函數(shù)名 varfId=document.getElementById("fIdID").value;//獲得選擇的是哪個(gè)類別 varspanF=document.getElementById("addFirstType"); varspanS=document.getElementById("addSecondType"); if(fId!=""){ if("addFirstType"==fId){ spanF.style.display="block"; spanS.style.display="block"; varc=document.getElementById("tIdID");//獲得是哪個(gè)select下拉框 //如果下拉框中已經(jīng)有選項(xiàng),就將選項(xiàng)清空掉 while(c.childNodes.length>4){//如果該下拉框的子節(jié)點(diǎn)的個(gè)數(shù)大于2(這里的目的是留下"--子菜單--"選項(xiàng)) c.removeChild(c.childNodes[c.childNodes.length-1]);//去掉最后一個(gè)選項(xiàng) } }else{ spanF.style.display="none"; spanS.style.display="none"; req.open("get","servlet/ChangeType"fId="+fId,true);//打開(kāi)到資源的鏈接 req.send(null);//發(fā)送請(qǐng)求 } }else{ spanF.style.display="none"; spanS.style.display="none"; varc=document.getElementById("tIdID");//獲得是哪個(gè)select下拉框 //如果下拉框中已經(jīng)有選項(xiàng),就將選項(xiàng)清空掉 while(c.childNodes.length>4){//如果該下拉框的子節(jié)點(diǎn)的個(gè)數(shù)大于2(這里的目的是留下"--子菜單--"選項(xiàng)) c.removeChild(c.childNodes[c.childNodes.length-1]);//去掉最后一個(gè)選項(xiàng) } } }
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 破產(chǎn)重整廠房股權(quán)轉(zhuǎn)讓合同范本
- 拆遷項(xiàng)目風(fēng)險(xiǎn)評(píng)估與管理合同
- 財(cái)務(wù)擔(dān)保業(yè)務(wù)信息共享合作協(xié)議
- 彩鋼房安全責(zé)任書(適用于學(xué)校建筑)
- 2025年中考考前最后一卷化學(xué)(廣州卷)(全解全析)
- 避難室工程作業(yè)指導(dǎo)書書
- 醫(yī)院儀器放置管理制度
- 公司租金收繳管理制度
- 團(tuán)內(nèi)激勵(lì)團(tuán)員管理制度
- 最簡(jiǎn)單裝修合同協(xié)議書
- 阿米巴模式的合同協(xié)議書
- DB32/T 4622.4-2023采供血過(guò)程風(fēng)險(xiǎn)管理第4部分:血液成分制備和供應(yīng)風(fēng)險(xiǎn)控制規(guī)范
- 技術(shù)員獎(jiǎng)勵(lì)協(xié)議書
- 北京市先農(nóng)壇體育運(yùn)動(dòng)技術(shù)學(xué)校招聘筆試真題2024
- 2025年供應(yīng)鏈管理專業(yè)考試試題及答案
- 打破傳統(tǒng)藩籬:小學(xué)高段先寫后教習(xí)作教學(xué)模式的創(chuàng)新與實(shí)踐
- 2025山東能源集團(tuán)營(yíng)銷貿(mào)易限公司招聘機(jī)關(guān)部分業(yè)務(wù)人員31人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2024年漳州市招聘中小學(xué)幼兒園教師真題
- 2025年道德與法治課程考試試卷及答案
- 天津2025年中國(guó)醫(yī)學(xué)科學(xué)院放射醫(yī)學(xué)研究所第一批招聘筆試歷年參考題庫(kù)附帶答案詳解
評(píng)論
0/150
提交評(píng)論