




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
-PAGE.z.陽工程學(xué)院課程設(shè)計設(shè)計題目:WEB程序設(shè)計課程設(shè)計倉庫管理網(wǎng)站的開發(fā)系別信息工程系班級計專本121學(xué)生姓名劉智明、鄭永凱、李剛**19、27、21指導(dǎo)教師曾祥萍、費(fèi)雅潔職稱講師、教授起止日期:2013年06月24日起—至2013年07月03日止陽工程學(xué)院課程設(shè)計任務(wù)書課程設(shè)計題目:WEB程序設(shè)計課程設(shè)計倉庫管理網(wǎng)站的開發(fā)系別信息工程系班級計專本121學(xué)生姓名劉智明、鄭永凱、李剛**19、27、21指導(dǎo)教師曾祥萍職稱講師課程設(shè)計進(jìn)行地點:F座6樓任務(wù)下達(dá)時間:2013年12月13日起止日期:2013年6月17日起—至2013年7月3日止教研室主任:楊弘平2013年6月24日批準(zhǔn)-.z.任務(wù)計劃書1.設(shè)計的原始資料及依據(jù)通過課程設(shè)計使學(xué)生進(jìn)一步加深對課程內(nèi)容的理解,利用程序設(shè)計的基本思想進(jìn)行程序的開發(fā),進(jìn)一步掌握編程方法和技巧,提高學(xué)生用程序的思想來解決實際問題的能力。2.設(shè)計的主要內(nèi)容及要求設(shè)計題目:倉庫管理網(wǎng)站開發(fā)需要完成的功能:貨品入庫、貨品出庫、貨品歸還和貨品庫存查詢等3.對設(shè)計說明書撰寫內(nèi)容、格式、字?jǐn)?shù)的要求⑴學(xué)生應(yīng)撰寫的內(nèi)容為:中文摘要和關(guān)鍵詞、目錄、正文、參考文獻(xiàn)等。課程設(shè)計說明書(論文)的結(jié)構(gòu)及各部分內(nèi)容要求可參照《沈陽工程學(xué)院課程設(shè)計(論文)撰寫規(guī)范》執(zhí)行。應(yīng)做到文理通順,內(nèi)容正確完整,書寫工整,裝訂整齊。⑵裝訂格式封面、任務(wù)書、成績評審意見表、摘要和關(guān)鍵詞、目錄、正文、結(jié)論、致謝、參考文獻(xiàn)。⑶課程設(shè)計說明書(論文)是體現(xiàn)和總結(jié)課程設(shè)計成果的載體,一般不應(yīng)少于3000字。打印時采用A4紙,頁邊距均為20mm,正文采用宋體小四號字,行間距18磅。文中大標(biāo)題采用黑體小三號字,一級節(jié)標(biāo)題采用黑體四號字,二級節(jié)標(biāo)題采用黑體小四號字,三級節(jié)標(biāo)題采用黑體小四號字,表題與圖題采用宋體五號字。4.設(shè)計完成后應(yīng)提交成果的種類、數(shù)量、質(zhì)量等方面的要求⑴課程設(shè)計任務(wù)書⑵課程設(shè)計報告⑶設(shè)計成品(光盤)5.時間進(jìn)度安排順序階段日期計劃完成容備注1第一天查閱資料,充分解讀題目內(nèi)容,小組分工,確定每個人的具體任務(wù)。1天2第二天數(shù)據(jù)庫設(shè)計及登陸界面的實現(xiàn)。1天3第三至第六天編制程序,單元測試。4天4第七,八天程序整合,綜合調(diào)試。2天5第九天答辯。1天6第十天撰寫課程設(shè)計報告。1天6.主要參考資料(文獻(xiàn))[1]耿祥義.JAVA2實用教程.:清華大學(xué)出版社,2006[2]陳旭東.JSP2.0應(yīng)用教程.:清華大學(xué)出版社,2006[3]黃明.JSP課程設(shè)計.:電子工業(yè)出版社,2008[4]石志國.JSP應(yīng)用教程.:清華大學(xué)出版社,2006[5]SharonZakhour.Java教程.:人民郵電出版社,2007-.z.沈陽工程學(xué)院課程設(shè)計成績評定表系(部):信息工程系班級:計專本121學(xué)生姓名:劉智明、鄭永凱、李剛指導(dǎo)教師評審意見評價內(nèi)容具體要求權(quán)重評分加權(quán)分調(diào)研論證能獨立查閱文獻(xiàn),收集資料;能制定課程設(shè)計方案和日程安排。0.15432工作能力態(tài)度工作態(tài)度認(rèn)真,遵守紀(jì)律,出勤情況是否良好,能夠獨立完成設(shè)計工作,0.25432工作量按期圓滿完成規(guī)定的設(shè)計任務(wù),工作量飽滿,難度適宜。0.25432說明書的質(zhì)量說明書立論正確,論述充分,結(jié)論嚴(yán)謹(jǐn)合理,文字通順,技術(shù)用語準(zhǔn)確,符號統(tǒng)一,編號齊全,圖表完備,書寫工整規(guī)范。0.55432指導(dǎo)教師評審成績(加權(quán)分合計乘以8)分加權(quán)分合計指導(dǎo)教師簽名:年月日評閱教師評審意見評價內(nèi)容具體要求權(quán)重評分加權(quán)分查閱文獻(xiàn)查閱文獻(xiàn)有一定廣泛性;有綜合歸納資料的能力0.25432工作量工作量飽滿,難度適中。0.55432說明書的質(zhì)量說明書立論正確,論述充分,結(jié)論嚴(yán)謹(jǐn)合理,文字通順,技術(shù)用語準(zhǔn)確,符號統(tǒng)一,編號齊全,圖表完備,書寫工整規(guī)范。0.35432評閱教師評審成績(加權(quán)分合計乘以4)分加權(quán)分合計評閱教師簽名:年月日答辯小組評審意見評價內(nèi)容具體要求權(quán)重評分加權(quán)分學(xué)生匯報匯報準(zhǔn)備充分,思路清晰;語言表達(dá)準(zhǔn)確,概念清楚,論點正確,有層次,有重點,基本上反映了所完成任務(wù)的全部內(nèi)容;時間符合要求。0.55432答辯思路清晰;回答問題有理論依據(jù),基本概念清楚;主要問題回答準(zhǔn)確,深入,有說服力。0.55432答辯小組評審成績(加權(quán)分合計乘以8)分加權(quán)分合計答辯小組教師簽名:年月日課程設(shè)計總評成績分-.z.摘要倉庫管理系統(tǒng)是為了實現(xiàn)中小型批發(fā)商管理的系統(tǒng)化、規(guī)范化和自動化,從而為提高倉庫管理的效率而設(shè)計的。它完全取代了原來一直用人工管理的工作方式,避免了由于管理人員的工作疏忽以及管理質(zhì)量問題所造成的各種錯誤,為及時、準(zhǔn)確、高效的完成倉庫管理提供了強(qiáng)有力的工具和管理手段。倉庫管理系統(tǒng)是一個中型數(shù)據(jù)庫管理系統(tǒng),它界面美觀、操作簡單、安全性高,基本滿足了倉庫管理的要求。本文是將我們平時學(xué)習(xí)的只是加以運(yùn)用。設(shè)計的題目是倉庫管理網(wǎng)站的開發(fā)。本倉庫管理網(wǎng)站的主要功能包括:貨品入庫、貨品出庫、貨品歸還和貨品庫存查詢等功能。在具體實現(xiàn)該網(wǎng)站時我們遵照軟件工程中的流程來進(jìn)行具體步驟的操作。首先是進(jìn)行需求分析,了解該網(wǎng)站的價值。然后進(jìn)行數(shù)據(jù)庫設(shè)計,確定其中的各種邏輯關(guān)系以及各種訪問類的實現(xiàn)。最后進(jìn)行系統(tǒng)具體功能的實現(xiàn)。根據(jù)之前的分析和考慮,將網(wǎng)站中的各種功能模塊化,然后根據(jù)各個模塊的具體功能,通過編碼和各種工具進(jìn)行實現(xiàn)。本網(wǎng)站的開發(fā)選取JSP+JavaBean+Servlet的開發(fā)模式,在系統(tǒng)開發(fā)過程中,還會使用Aja*技術(shù)進(jìn)行異步提交數(shù)據(jù)和CSS樣式控制頁面布局。關(guān)鍵字:倉庫管理網(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è)計21.1需求分析21.2功能設(shè)計網(wǎng)頁的組成\h2第二章.數(shù)據(jù)庫設(shè)計42.1數(shù)據(jù)庫邏輯設(shè)計42.2數(shù)據(jù)庫的訪問類實現(xiàn)6第三章.網(wǎng)站的實現(xiàn)83.1倉庫人員登錄模塊83.2貨品入貨153.3貨品出貨037165\h263.4貨品歸還323.5貨品庫存323.6貨品修改33結(jié)論34致謝35參考文獻(xiàn)1-.z.緒論隨著科學(xué)技術(shù)的不斷提高,計算機(jī)科學(xué)的不斷發(fā)展,其強(qiáng)大的功能已被人們深刻地認(rèn)識到,它已經(jīng)進(jìn)入了人類社會的各個領(lǐng)域并發(fā)揮著越來越重要的作用。同時,它在國內(nèi)外企業(yè)中的發(fā)展、應(yīng)用已經(jīng)趨于穩(wěn)定和成熟。同時隨著經(jīng)濟(jì)的不斷繁榮和中小型批發(fā)商規(guī)模的不斷擴(kuò)大,倉庫在批發(fā)商的整個供應(yīng)鏈中起著至關(guān)重要的作用,如果不能保證正確的進(jìn)貨和庫存控制及發(fā)貨,將會導(dǎo)致管理費(fèi)用的增加,服務(wù)質(zhì)量難以得到保證,從而影響批發(fā)商的競爭力。傳統(tǒng)簡單、靜態(tài)的倉儲管理已無法保證各種資源的高效利用。如今的倉庫作業(yè)和庫存控制作業(yè)已十分復(fù)雜化多樣化,僅靠人工記憶和手工錄入,不但費(fèi)時費(fèi)力,而且容易出錯,給批發(fā)商帶來很大損失。因此,高效方便的倉庫管理網(wǎng)站,可以為生產(chǎn)經(jīng)營提供堅強(qiáng)的后盾和有力的支持。然而如今大部分中小型批發(fā)商對倉庫的管理卻始終處在僅靠人工記憶和手工錄入的傳統(tǒng)狀態(tài)。本倉庫管理網(wǎng)站就是針對中小型批發(fā)商的需要開發(fā)的。它與大型企業(yè)的倉庫管理系統(tǒng)有很大不同。由于批發(fā)商的倉庫相對于企業(yè)的較小,所以其特點就是功能簡單而實用,擴(kuò)充性好,界面簡潔而大方。本網(wǎng)站的開發(fā)選取JSP+JavaBean+Servlet的開發(fā)模式,在系統(tǒng)開發(fā)過程中,還會使用Aja*技術(shù)進(jìn)行異步提交數(shù)據(jù)和CSS樣式控制頁面布局。系統(tǒng)設(shè)計在著手開發(fā)網(wǎng)站之前,首先要對這個網(wǎng)站進(jìn)行分析和設(shè)計。要知道為什么做這個網(wǎng)站。這個網(wǎng)站要實現(xiàn)哪些功能,如何去實現(xiàn)這些功能,以及如何提高這些功能使用的安全性。解決這些問題,首先要對本網(wǎng)站進(jìn)行需求分析,然后要對本網(wǎng)站的功能進(jìn)行設(shè)計。需求分析很多企業(yè)都有自己的倉庫,所以如何管理越來月龐大復(fù)雜的倉庫,也就成為每個企業(yè)都必須面對的問題。根據(jù)企業(yè)的不同,倉庫的形式也不完全相似,但是基本的功能還是一樣的。該系統(tǒng)選取比較基本的功能模塊來講解倉庫管理系統(tǒng)的實現(xiàn)。根據(jù)倉庫的性質(zhì),對倉庫中的貨品要能夠進(jìn)行入庫和出庫管理,根據(jù)貨品種類要能夠進(jìn)行分類管理,并且對倉庫現(xiàn)有貨品情況要能夠進(jìn)行查詢。而且對于一個系統(tǒng)而言,倉庫管理要有倉庫人員,倉庫人員登錄系統(tǒng)后可以進(jìn)行對各模塊的操作。系統(tǒng)功能模塊圖如圖1.1所示。倉庫管理網(wǎng)站倉庫管理網(wǎng)站貨品修改貨品歸還貨品歸還貨品出庫貨品入庫添加客戶倉庫登陸貨品修改貨品歸還貨品歸還貨品出庫貨品入庫添加客戶倉庫登陸圖1.11.2功能設(shè)計網(wǎng)頁的組成根據(jù)前面的網(wǎng)站需求分析,將該系統(tǒng)劃分為七個基本模塊,分別為倉庫管理登陸、添加客戶模塊、貨品入庫模塊、貨品出庫模塊、貨品歸還模塊、貨品庫存模塊和貨品修改模塊。下面對這幾個模塊進(jìn)行分析。1.倉庫登陸倉庫由倉庫管理人員進(jìn)行管理,倉庫管理人員通過登錄來獲取倉庫管理網(wǎng)站認(rèn)可,然后進(jìn)行管理操作。2.添加客戶倉庫貨品出庫所針對的對象是客戶,客戶借貨時必須要有倉庫的借貨憑證。因此,如果客戶沒有借貨憑證,而又想從倉庫借出貨品時,就需要為倉庫添加一名客戶。添加客戶采取的形勢是,客戶按要求向倉庫管理人員提供自己的相關(guān)信息,倉庫管理人員成功添加該客戶后,網(wǎng)站返回一個用戶帳號,這個帳號就作為此客戶以后向倉庫借出貨品的憑證。3.貨品入庫貨品入庫就是向倉庫中添加貨品。倉庫管理人員通過貨品名稱向倉庫中添加該貨品,該貨品如果已經(jīng)存在,則就將該貨品的數(shù)量在已有的基礎(chǔ)上進(jìn)行增加;如果在倉庫中不存在,則添加后還需要為該貨品設(shè)置一個心的貨品編號。4.貨品出庫貨品出庫就是客戶從倉庫中借出貨品。貨品出庫時需要客戶向倉庫管理人員提供自己的帳號,并通過帳號密碼進(jìn)行驗證。同時,客戶要求提供待借貨品數(shù)量。系統(tǒng)在確認(rèn)向該客戶借出貨品之前,還需要檢查客戶所提供的帳號上是否有過期未歸還的貨品,如果有,將拒絕向此帳號借出貨品。貨品出庫如果成功,系統(tǒng)將自動生成一個貨單編號,供客戶歸還貨品時使用。5.貨品歸還貨品歸還具有時間限制,貨品借出后,如果客戶不在限制時間內(nèi)歸還該貨品,則借貨時所使用的帳號將無法再從倉庫中借出貨品。貨品歸還時,客戶需要提供貨單編號、待還貨品編號和待還貨品數(shù)量。體統(tǒng)在核實多有信息后,刪除該貨單信息。6.貨品庫存?zhèn)}庫管理人員需要獲取貨品存庫信息。該信息可以是倉庫中所有貨品的信息,也可以是倉庫人員所要查詢的貨品信息。7.貨品修改倉庫管理人員通過查詢獲得貨品的信息后,可以修改該貨品信息。貨品信息中除了貨品編號以外的信息都可以修改。第二章.數(shù)據(jù)庫設(shè)計前面對網(wǎng)站需求進(jìn)行了分析,也對網(wǎng)站功能有了初步設(shè)計,接下來就是對網(wǎng)站數(shù)據(jù)庫進(jìn)行邏輯設(shè)計和訪問類實現(xiàn)。數(shù)據(jù)庫設(shè)計是網(wǎng)站實現(xiàn)的最關(guān)鍵環(huán)節(jié),會直接影響網(wǎng)站功能的實現(xiàn)。結(jié)合網(wǎng)站功能設(shè)計,確定本網(wǎng)站需要如下七個表:倉庫人員信息表、貨品信息表、客戶信息表、貨品出庫信息表、貨品歸還時限信息表、貨品主類信息表和貨品子類信息表。本網(wǎng)站選用MySQL數(shù)據(jù)庫。2.1數(shù)據(jù)庫邏輯設(shè)計首先在MySQL中為倉庫管理系統(tǒng)創(chuàng)建數(shù)據(jù)庫warehouse,然后在該數(shù)據(jù)庫中創(chuàng)建系統(tǒng)所需的七個表,這七個表的字段信息如下。倉庫人員信息表WarehouseManager,如圖2.11.圖2.11.2貨品信息表Goods,如圖2.12.圖2.12.3.客戶信息表Boeeower,如圖2.13圖2.134貨品出庫信息表Lend,如圖2.14圖2.145貨品歸還時限信息表TimeLimit,如圖2.15圖2.156貨品主類信息表FirstType,如圖2.16圖2.167貨品自類信息表GoodsType,如圖2.17圖2.172.2數(shù)據(jù)庫的訪問類實現(xiàn)結(jié)合前面數(shù)據(jù)庫的分析與設(shè)計,創(chuàng)建Warehouse和相應(yīng)的數(shù)據(jù)表。接下來,進(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在上圖中,文件夾用來存放所有用來存放所有包含java類文件的文件夾。其中dao文件夾中新建數(shù)據(jù)庫的訪問類文件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)站的實現(xiàn)倉庫管理人員在倉庫登陸頁面上進(jìn)行登陸驗證,如果登陸成功,將進(jìn)入歡迎頁面;如果登錄失敗,則返回到登錄頁面。倉庫登錄成功后才可以對倉庫進(jìn)行管理,否則倉庫管理人員想要進(jìn)行管理操作時,頁面會始終轉(zhuǎn)向登錄頁面。3.1倉庫人員登錄模塊倉庫管理人員登錄模塊登錄模塊主要用于倉庫管理人員登錄,當(dāng)倉庫人員成功登陸后,需要設(shè)置一個session對象用來保存登陸用戶名,這樣就可以記錄該人員的登錄狀態(tài)。當(dāng)他訪問本站其他頁面時,就可以通過這個session對象的值來判斷其是否已經(jīng)登錄。創(chuàng)建WarehouseManager.java,對應(yīng)倉庫人員信息表,是可視化的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)建登錄頁面,如果登錄成功就跳轉(zhuǎn)到歡迎頁面。失敗的話就放回到登錄頁面。登錄頁面代碼如下:<%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)前位置:管理員登錄 </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歡迎頁面如下:<%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)前位置:歡迎頁面 </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>計專本121</li> </ul> </div> <divid="bottomPic1"></div> <divid="bottomPic2"></div> </div></center></body></html>其頁面如圖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(); //獲取登錄頁面的信息 StringmName=request.getParameter("mName");//登錄用戶名 StringmPassword=request.getParameter("mPassword");//登錄密碼 booleanflag=dm.loginJudge(mName,mPassword); if(flag){ //如果賬號和密碼正確,設(shè)置一個session來保存用戶名 if(session.getAttribute("loginName")!=null){ session.removeAttribute("loginName"); } session.setAttribute("loginName",mName); out.print("<script>top.location.href='Redirect"menu=warehouseManage.jsp'</script>");}else{ //如果賬號和密碼不正確 out.print("<script>alert('用戶名或密碼錯誤!');history.go(-1);</script>"); } out.flush(); out.close(); } publicvoidinit()throwsServletE*ception{ }}定義一個登陸檢查方法: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貨品入貨貨品入庫指向倉庫添加貨物,在添加貨品時,首先要填寫貨品名稱,根據(jù)這個名稱檢查倉庫中是否已經(jīng)存在該貨品。如果已經(jīng)存在,則只需要填寫貨品新入庫數(shù)量;如果不存在,則除了需要填寫貨品新入庫數(shù)量以外,還需要填寫貨品廠商、貨品租金、需要選擇貨品所屬主類以及貨品所屬子類,另外貨品備注可以根據(jù)需要填寫或者不寫。1.創(chuàng)建貨品入庫界面,代碼如下:<%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)前位置:貨品入庫 </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;//異步請求提交對象 //檢查新增貨品主類是否符合規(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、初始化異步請求提交對象functioninit(){ if(window.Active*Object){ //IE req=newActive*Object("Microsoft.*MLHTTP"); }else{ //firefo* req=new*MLHttpRequest(); } } //發(fā)送請求 functioncheckGName(){ vargName=document.getElementById("gNameID").value; varpattern=/^\s{0,}$/; if(!pattern.test(gName)){ document.getElementById("gNameError").innerHTML=""; init(); //2、指定處理返回值的函數(shù) req.onreadystatechange=aboutGName; //3、打開到資源的連接 req.open("get","checkGName.jsp"gName="+gName,true); //4、發(fā)送請求 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; } } } } //級聯(lián)菜單 functionchangeGType(){ init();//獲得req; req.onreadystatechange=goodsType;//指定處理返回值的函數(shù)名 varfId=document.getElementById("fIdID").value;//獲得選擇的是哪個類別 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");//獲得是哪個select下拉框 //如果下拉框中已經(jīng)有選項,就將選項清空掉 while(c.childNodes.length>4){//如果該下拉框的子節(jié)點的個數(shù)大于2(這里的目的是留下"--子菜單--"選項) c.removeChild(c.childNodes[c.childNodes.length-1]);//去掉最后一個選項 } }else{ spanF.style.display="none"; spanS.style.display="none"; req.open("get","servlet/ChangeType"fId="+fId,true);//打開到資源的鏈接 req.send(null);//發(fā)送請求 } }else{ spanF.style.display="none"; spanS.style.display="none"; varc=document.getElementById("tIdID");//獲得是哪個select下拉框 //如果下拉框中已經(jīng)有選項,就將選項清空掉 while(c.childNodes.length>4){//如果該下拉框的子節(jié)點的個數(shù)大于2(這里的目的是留下"--子菜單--"選項) c.removeChild(c.childNodes[c.childNodes.length-1]);//去掉最后一個選項 } } }
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 會所怎樣管理制度
- 會所薪資管理制度
- 會計保密管理制度
- 會計流程管理制度
- 會議信息管理制度
- 會議時間管理制度
- 會議部門管理制度
- 內(nèi)蒙古工業(yè)大學(xué)《獸醫(yī)微生物學(xué)實驗》2023-2024學(xué)年第二學(xué)期期末試卷
- 吉林師范大學(xué)博達(dá)學(xué)院《音樂美學(xué)一》2023-2024學(xué)年第二學(xué)期期末試卷
- 低溫消毒管理制度
- 2023年貴州省糧食儲備集團(tuán)有限公司面向社會公開招聘工作人員15人筆試參考題庫附帶答案詳解
- 痘痘專業(yè)知識課件圖
- 超星爾雅學(xué)習(xí)通《國家安全教育(中國人民公安大學(xué))》2025章節(jié)測試附答案
- 艾梅乙防治知識培訓(xùn)課件
- 胸腔穿刺術(shù)護(hù)理查房
- 全過程咨詢項目管理
- 2024年廣東省廣州市白云山風(fēng)景名勝區(qū)管理局分支機(jī)構(gòu)第一次公開招聘考試真題及答案
- DB65T 8020-2024 房屋建筑與市政基礎(chǔ)設(shè)施工程施工現(xiàn)場從業(yè)人員配備標(biāo)準(zhǔn)
- 2024年江西省水利投資集團(tuán)有限公司招聘考試真題
- 2024年貴州省普通高校招生信息表(普通類本科批-物理組合)
- 2025年個人與企業(yè)投資合同模板
評論
0/150
提交評論