服裝庫(kù)存管理系統(tǒng)課程設(shè)計(jì)報(bào)告書(shū)_第1頁(yè)
服裝庫(kù)存管理系統(tǒng)課程設(shè)計(jì)報(bào)告書(shū)_第2頁(yè)
服裝庫(kù)存管理系統(tǒng)課程設(shè)計(jì)報(bào)告書(shū)_第3頁(yè)
服裝庫(kù)存管理系統(tǒng)課程設(shè)計(jì)報(bào)告書(shū)_第4頁(yè)
服裝庫(kù)存管理系統(tǒng)課程設(shè)計(jì)報(bào)告書(shū)_第5頁(yè)
已閱讀5頁(yè),還剩21頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 . . 20/26長(zhǎng) 沙 學(xué) 院課程設(shè)計(jì)說(shuō)明書(shū)題目服裝庫(kù)存管理系統(tǒng)系(部)計(jì)算機(jī)科學(xué)與技術(shù)系專(zhuān)業(yè)(班級(jí))2010軟件工程(服務(wù)外包)1班曾祥炫學(xué)號(hào)2010022111指導(dǎo)教師怡起止日期2012.3.12 2012.7.6課程設(shè)計(jì)任務(wù)書(shū)課程名稱(chēng):基礎(chǔ)編程能力考核設(shè)計(jì)題目:服裝庫(kù)存管理系統(tǒng)已知技術(shù)參數(shù)和設(shè)計(jì)要求:?jiǎn)栴}描述(功能要求):服裝庫(kù)存管理系統(tǒng)主要包括:系統(tǒng)管理 系統(tǒng)管理包括用戶(hù)管理和貨號(hào)管理,能進(jìn)行增加、刪除、修改和查找的操作。庫(kù)存管理 庫(kù)存管理包括入庫(kù)單管理和出庫(kù)單管理。入庫(kù)單管理包括入庫(kù)單基本信息管理和入庫(kù)單明細(xì)管理,并能分別對(duì)入庫(kù)單和入庫(kù)單明細(xì)進(jìn)行增加、刪除、修改和查找的操作。出庫(kù)

2、單管理包括出庫(kù)單基本信息管理和出庫(kù)單明細(xì)管理,并能分別對(duì)出庫(kù)單和出庫(kù)單明細(xì)進(jìn)行增加、刪除、修改和查找的操作。輔助管理輔助管理包括修改密碼。2. 運(yùn)行環(huán)境要求:(1)客戶(hù)端:Windows操作系統(tǒng)IE瀏覽器(2)服務(wù)器:windows server 版操作系統(tǒng)Tomcat web 服務(wù)器My SQL 數(shù)據(jù)庫(kù)服務(wù)器3. 技術(shù)要求:強(qiáng)調(diào)軟件工程過(guò)程文檔的規(guī)化。需求分析規(guī)格說(shuō)明書(shū)與用例規(guī)約系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì),時(shí)序圖,類(lèi)圖,MVC架構(gòu)系統(tǒng)完整編碼,采用JSP、Servlet技術(shù)設(shè)計(jì)工作量:40課時(shí)工作計(jì)劃:(1) 2010級(jí)軟件工程所有班級(jí)16課時(shí): 1609理論講座20課時(shí):上機(jī)、調(diào)試。計(jì)算機(jī)系機(jī)房4課時(shí)

3、:答辯。計(jì)算機(jī)系機(jī)房。(具體時(shí)間地點(diǎn)老師先申請(qǐng),機(jī)動(dòng)安排)指導(dǎo)教師簽名:日期:教研室主任簽名: 日期:系主任簽名: 日期:學(xué)院課程設(shè)計(jì)鑒定表曾祥炫學(xué)號(hào)2010022111專(zhuān)業(yè)軟件工程班級(jí)10軟件1班設(shè)計(jì)題目服裝庫(kù)存管理系統(tǒng)指導(dǎo)教師怡指導(dǎo)教師意見(jiàn):評(píng)定等級(jí): 教師簽名: 日期:答辯小組意見(jiàn):評(píng)定等級(jí):答辯小組長(zhǎng)簽名:日期:教研室意見(jiàn):教研室主任簽名: 日期:系(部)意見(jiàn):系主任簽名:日期:說(shuō)明課程設(shè)計(jì)成績(jī)分“優(yōu)秀”、“良好”、“中等”、“與格”、“不與格”五類(lèi);項(xiàng)目實(shí)訓(xùn)(四)工作計(jì)劃表周 次實(shí)訓(xùn)容備 注第0周(2012.3.122012.4.6)實(shí)訓(xùn)啟動(dòng)召集項(xiàng)目組學(xué)生開(kāi)會(huì)明確實(shí)訓(xùn)的容和要求袁偉森

4、老師講課致遠(yuǎn)樓1609第一周(2012.5.142012.5.18)1系統(tǒng)需求分析設(shè)計(jì)致遠(yuǎn)樓1409第二周(2012.5.212012.5.25)1組長(zhǎng)討論會(huì),討論需求分析進(jìn)度情況完善需求文檔2. 用例和用例規(guī)約設(shè)計(jì)致遠(yuǎn)樓1409第三周(2012.5.282012.6.1)1系統(tǒng)詳細(xì)設(shè)計(jì),類(lèi)模型設(shè)計(jì)2時(shí)序圖的設(shè)計(jì)致遠(yuǎn)樓1408第五周(2012.6.42012.6.8)1第一階段任務(wù)檢查需求分析2. 開(kāi)發(fā)工具的使用致遠(yuǎn)樓1408第六周(2012.6.112012.6.15)1Struts2技術(shù)講解2. 第二階段任務(wù)檢查數(shù)據(jù)庫(kù)的設(shè)計(jì)致遠(yuǎn)樓1408第七周(2012.6.182012.6.22)1.

5、代碼實(shí)現(xiàn)2. 答疑調(diào)試致遠(yuǎn)樓1408第八周(2012.6.252012.6.29)1. 代碼實(shí)現(xiàn)2. 答疑調(diào)試致遠(yuǎn)樓1408第九周(2012.7.22012.7.6)1答辯致遠(yuǎn)樓1401目錄TOC o 1-3 h z uHYPERLINK l _Toc329101136第1章設(shè)計(jì)容與要求 PAGEREF _Toc329101136 h 1HYPERLINK l _Toc3291011371.1 設(shè)計(jì)容 PAGEREF _Toc329101137 h 1HYPERLINK l _Toc3291011381.2 設(shè)計(jì)要求 PAGEREF _Toc329101138 h 1HYPERLINK l _

6、Toc329101139第2章需求分析 PAGEREF _Toc329101139 h 3HYPERLINK l _Toc3291011402.1整體用例圖 PAGEREF _Toc329101140 h 3HYPERLINK l _Toc3291011412.2 用例規(guī)約 PAGEREF _Toc329101141 h 3HYPERLINK l _Toc3291011422.3 需求描述 PAGEREF _Toc329101142 h 5HYPERLINK l _Toc329101143第3章系統(tǒng)設(shè)計(jì) PAGEREF _Toc329101143 h 6HYPERLINK l _Toc3291

7、011443.1 數(shù)據(jù)庫(kù)設(shè)計(jì) PAGEREF _Toc329101144 h 6HYPERLINK l _Toc3291011453.1.1數(shù)據(jù)庫(kù)對(duì)象命名規(guī)則 PAGEREF _Toc329101145 h 6HYPERLINK l _Toc3291011463.1.2 數(shù)據(jù)項(xiàng)編碼規(guī)則 PAGEREF _Toc329101146 h 6HYPERLINK l _Toc3291011473.1.3 用戶(hù)信息表結(jié)構(gòu) PAGEREF _Toc329101147 h 6HYPERLINK l _Toc3291011483.2 類(lèi)圖設(shè)計(jì) PAGEREF _Toc329101148 h 7HYPERLIN

8、K l _Toc3291011493.3 時(shí)序圖設(shè)計(jì) PAGEREF _Toc329101149 h 7HYPERLINK l _Toc329101150第4章系統(tǒng)實(shí)現(xiàn) PAGEREF _Toc329101150 h 9HYPERLINK l _Toc3291011514.1 登陸設(shè)計(jì)實(shí)現(xiàn) PAGEREF _Toc329101151 h 9HYPERLINK l _Toc3291011524.2 修改密碼設(shè)計(jì)實(shí)現(xiàn) PAGEREF _Toc329101152 h 12HYPERLINK l _Toc329101153第5章總結(jié) PAGEREF _Toc329101153 h 17HYPERLIN

9、K l _Toc329101154參考文獻(xiàn) PAGEREF _Toc329101154 h 18HYPERLINK l _Toc329101156附錄 PAGEREF _Toc329101156 h 19第1章 設(shè)計(jì)容與要求1.1 設(shè)計(jì)容服裝庫(kù)存管理系統(tǒng)主要的設(shè)計(jì)容包括:(1)系統(tǒng)管理 系統(tǒng)管理包括用戶(hù)管理和貨號(hào)管理。在用戶(hù)管理中要包括新建系統(tǒng)用戶(hù)、刪除系統(tǒng)用戶(hù)、查看系統(tǒng)用戶(hù)詳細(xì)信息、更新系統(tǒng)用戶(hù)、查詢(xún)系統(tǒng)用戶(hù)、系統(tǒng)用戶(hù)登陸和修改密碼。在貨號(hào)管理中包括新建貨號(hào)、刪除貨號(hào)、查看貨號(hào)詳細(xì)信息、更新貨號(hào)、查詢(xún)貨號(hào)(2)庫(kù)存管理庫(kù)存管理包括入庫(kù)單管理和出庫(kù)單管理。入庫(kù)單管理包括新建入庫(kù)單、刪除入庫(kù)單、

10、查看入庫(kù)單詳細(xì)信息、更新入庫(kù)單、提交入庫(kù)單、查詢(xún)?nèi)霂?kù)單、新增入庫(kù)單明細(xì)、查看入庫(kù)單明細(xì)的詳細(xì)信息、更新入庫(kù)單明細(xì)、刪除入庫(kù)單明細(xì)、查詢(xún)?nèi)霂?kù)單明細(xì)。出庫(kù)單管理包括新建出庫(kù)單、刪除出庫(kù)單、查看出庫(kù)單的詳細(xì)信息、更新出庫(kù)單、提交出庫(kù)單、查詢(xún)出庫(kù)單、新增出庫(kù)單明細(xì)、查看出庫(kù)單明細(xì)的詳細(xì)信息、更新出庫(kù)單明細(xì)、刪除出庫(kù)單明細(xì)、查詢(xún)出庫(kù)單明細(xì)。(3)輔助管理輔助管理包括修改密碼。1.2 設(shè)計(jì)要求(1)系統(tǒng)管理 用戶(hù)管理中在新建系統(tǒng)用戶(hù)時(shí)用戶(hù)登錄號(hào)、用戶(hù)和用戶(hù)密碼為必選項(xiàng),如果沒(méi)有填寫(xiě)應(yīng)該要能給出提示信息。用戶(hù)能夠根據(jù)用戶(hù)登錄號(hào)和用戶(hù)來(lái)查詢(xún)系統(tǒng)用戶(hù)的詳細(xì)信息。系統(tǒng)用戶(hù)能夠根據(jù)用戶(hù)登錄號(hào)和密碼來(lái)成功登陸系統(tǒng)。用

11、戶(hù)在成功登陸后可以使用舊密碼來(lái)設(shè)置新密碼。 貨號(hào)管理中在新建貨號(hào)時(shí)貨號(hào)、品名、色號(hào)、尺碼、面料、里料、出廠(chǎng)價(jià)、零售價(jià)為必選項(xiàng),若有一項(xiàng)沒(méi)有填寫(xiě)應(yīng)該要能給出提示信息。用戶(hù)可以根據(jù)貨號(hào)、色號(hào)、尺碼來(lái)查看貨號(hào)詳細(xì)信息。(2)庫(kù)存管理 入庫(kù)單管理中在新建入庫(kù)單時(shí)入庫(kù)日期、所入倉(cāng)庫(kù)、來(lái)源是必選項(xiàng),如果有一項(xiàng)沒(méi)有填寫(xiě),系統(tǒng)要能夠給出提示信息,備注為非必選項(xiàng)。用戶(hù)成功登陸系統(tǒng)后可以根據(jù)單據(jù)號(hào)來(lái)查看入庫(kù)單的詳細(xì)信息。用戶(hù)在更新入庫(kù)單時(shí)要先查詢(xún)到要更新的入庫(kù)單,然后再進(jìn)行入庫(kù)單的更新。用戶(hù)在保存入庫(kù)單信息后可以進(jìn)行新增入庫(kù)單詳細(xì)信息的操作,新建時(shí)可以設(shè)定入庫(kù)單明細(xì)的貨號(hào)、色號(hào)、尺碼和數(shù)量。 出庫(kù)單管理中在新建出

12、庫(kù)單時(shí)出庫(kù)日期、所出倉(cāng)庫(kù)、接收人、接收人為必選項(xiàng),若有一項(xiàng)沒(méi)有填寫(xiě)則給出提示信息,其中備注為非必選項(xiàng)。用戶(hù)成功登陸系統(tǒng)后可以根據(jù)單據(jù)號(hào)來(lái)查看出庫(kù)單的詳細(xì)信息。用戶(hù)在更新出庫(kù)單時(shí)要先查詢(xún)到要更新的出庫(kù)單,然后再進(jìn)行出庫(kù)單的更新。用戶(hù)在保存出庫(kù)單信息后可以進(jìn)行新增出庫(kù)單詳細(xì)信息的操作,新建時(shí)可以設(shè)定出庫(kù)單明細(xì)的貨號(hào)、色號(hào)、尺碼和數(shù)量。(3)輔助管理用戶(hù)在成功登陸系統(tǒng)后可以進(jìn)行修改密碼,修改密碼時(shí)舊密碼、新密碼和確認(rèn)密碼為必選項(xiàng),如果有一項(xiàng)沒(méi)有填寫(xiě),系統(tǒng)應(yīng)該給出提示信息。舊密碼必須要與登錄時(shí)使用的密碼一致,否則無(wú)法修改密碼,新密碼和確認(rèn)密碼也必須保持一致方能成功修改。第2章 需求分析2.1 整體用例

13、圖 圖1 全局用例圖2.2 用例規(guī)約表1 用戶(hù)登陸用例規(guī)約用例名稱(chēng):用戶(hù)登陸用例ID:CSMS-01角色:用戶(hù)簡(jiǎn)要說(shuō)明:用戶(hù)利用登錄號(hào)密碼登陸系統(tǒng)前置條件:無(wú)基本事件流:1、用戶(hù)輸入登錄號(hào)2、用戶(hù)輸入密碼3、用戶(hù)點(diǎn)擊“登陸”按鈕其它事件流:1、用戶(hù)輸入的登錄號(hào)和密碼為必選項(xiàng),如有一項(xiàng)為空,系統(tǒng)要能給出提示信息 2、系統(tǒng)接收用戶(hù)輸入的登錄號(hào)和密碼并且將其與數(shù)據(jù)庫(kù)中的用戶(hù)信息表中的對(duì)應(yīng)數(shù)據(jù)進(jìn)行驗(yàn)證,驗(yàn)證成功則允許用戶(hù)登陸,否則提醒用戶(hù)輸入正確的登錄號(hào)和密碼。異常事件流:1、登陸號(hào)或者密碼為空就點(diǎn)擊登陸。2、登錄號(hào)或者密碼錯(cuò)誤后置條件:系統(tǒng)用戶(hù)信息保存到數(shù)據(jù)庫(kù)中,并且頁(yè)面能夠?qū)⒂脩?hù)輸入的數(shù)據(jù)傳送至后

14、臺(tái)服務(wù)器中表2修改密碼用例規(guī)約用例名稱(chēng)修改密碼用例IDCSMS-02角色用戶(hù)。簡(jiǎn)要說(shuō)明用戶(hù)修改密碼前置條件用戶(hù)已經(jīng)登錄系統(tǒng)基本事件流1、用戶(hù)請(qǐng)求修改密碼。2、系統(tǒng)彈出修改密碼頁(yè)面。3、用戶(hù)輸入舊密碼。4、用戶(hù)輸入新密碼,確認(rèn)新密碼。5、點(diǎn)擊“完成”。其他事件流1、舊密碼、新密碼、確認(rèn)密碼為必選項(xiàng)、任何一項(xiàng)為空系統(tǒng)都要發(fā)出提示信息2、系統(tǒng)接收用戶(hù)輸入的舊密碼,并且將舊密碼與數(shù)據(jù)庫(kù)中的密碼進(jìn)行驗(yàn)證,若新密碼與確認(rèn)密碼一致,且驗(yàn)證通過(guò),則允許用戶(hù)修改密碼異常事件流1、用戶(hù)輸入的舊密碼與用戶(hù)登陸使用的密碼不一致。2、用戶(hù)輸入的新密碼與確認(rèn)密碼不一致。后置條件系統(tǒng)能夠獲取用戶(hù)在頁(yè)面上輸入的舊密碼、新密碼

15、和確認(rèn)密碼,并且對(duì)舊密碼與登陸密碼進(jìn)行驗(yàn)證。2.3 需求描述1用戶(hù)登陸需求編號(hào):CODEMN-1需求描述:用戶(hù)使用登錄號(hào)和密碼來(lái)成功登陸系統(tǒng)。CODEMN-1-1 用戶(hù)輸入登錄號(hào)和密碼CODEMN-1-2 頁(yè)面獲取用戶(hù)輸入的登錄號(hào)和密碼,并且與數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行比較CODEMN-1-3 證成功則允許用戶(hù)登陸,否則提醒用戶(hù)輸入正確的登錄號(hào)和密碼。2用戶(hù)修改密碼需求編號(hào):CODEMN-2 需求描述:用戶(hù)修改密碼CODEMN-2-1:用戶(hù)輸入舊密碼、新密碼、確認(rèn)密碼。CODEMN-2-2:系統(tǒng)接收用戶(hù)輸入的舊密碼,并且將舊密碼與數(shù)據(jù)庫(kù)中的密碼進(jìn)行驗(yàn)證,同時(shí)將獲取到的新密碼和確認(rèn)密碼進(jìn)行比較。CODE

16、MN-2-3:若舊密碼驗(yàn)證通過(guò),且新密碼與確認(rèn)密碼一致,則允許用戶(hù)修改密碼,否則給出錯(cuò)誤提示信息,密碼修改不成功。第3章 系統(tǒng)設(shè)計(jì)3.1 數(shù)據(jù)庫(kù)設(shè)計(jì)3.1.1數(shù)據(jù)庫(kù)對(duì)象命名規(guī)則表3 數(shù)據(jù)庫(kù)對(duì)象命名規(guī)則數(shù)據(jù)庫(kù)對(duì)象命名規(guī)則備注表Tbl_功能描述字符串例如:tbl_user用戶(hù)表視圖View_功能描述字符串例如:view_userInfo用戶(hù)視圖存儲(chǔ)過(guò)程Proc_功能描述字符串例如:proc_draw取款存儲(chǔ)過(guò)程3.1.2 數(shù)據(jù)項(xiàng)編碼規(guī)則表4數(shù)據(jù)項(xiàng)編碼規(guī)則數(shù)據(jù)項(xiàng)命名規(guī)則數(shù)據(jù)類(lèi)型長(zhǎng)度圍備注登錄名用戶(hù)開(kāi)頭字母字符10位無(wú)密碼6位長(zhǎng)的任意數(shù)字字符10位無(wú)貨號(hào)2個(gè)大寫(xiě)字母+數(shù)字字符10位無(wú)色號(hào)顏色開(kāi)頭字母+

17、數(shù)字字符10位無(wú)刪除狀態(tài)邏輯數(shù)字1或0整數(shù)2無(wú)尺碼正常人身高如170整數(shù)無(wú)入庫(kù)日期年+月+日日期無(wú)3.1.3 用戶(hù)信息表結(jié)構(gòu)表5 用戶(hù)信息表表名用戶(hù)信息表數(shù)據(jù)庫(kù)用戶(hù)主鍵userLogin其他排序字段無(wú)索引字段無(wú)序號(hào)字段名稱(chēng)數(shù)據(jù)類(lèi)型(精度圍)允許為空Y/N唯一Y/N區(qū)別度默認(rèn)值約束條件/說(shuō)明01userLoginVarchar(20)NY高無(wú)主鍵02usernameVarchar(20)NY高無(wú)03PasswordVarchar(20)NN高無(wú)04RemarkVarchar(20)FN低無(wú)05flagInt NN高無(wú)sql腳本create table user( userLogin varcha

18、r(20)not null primary key, userName varchar(20) not null,Password int not null , remark varchar(20),flag int not null);備注存儲(chǔ)用戶(hù)信息3.2 類(lèi)圖設(shè)計(jì)圖2 系統(tǒng)登陸和修改密碼的類(lèi)圖在登陸和修改密碼中,主要運(yùn)用到userImpl、UserServlet和Userinfo三個(gè)類(lèi)。userImpl中實(shí)現(xiàn)了Userinterface中定義的方法,在userImpl中可以拼寫(xiě)sql語(yǔ)句來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操作,即可以修改Userinfo中的屬性,BConnection起到了連接數(shù)據(jù)庫(kù)的作用

19、。UserServlet根據(jù)用戶(hù)在頁(yè)面上操作來(lái)決定調(diào)用什么方法,doPost()可以判斷用戶(hù)在頁(yè)面上JS頁(yè)面上選擇的操作的類(lèi)型,根據(jù)操作類(lèi)型來(lái)決定dologin()和doUpdatePwd()方法的調(diào)用。3.3 時(shí)序圖設(shè)計(jì)圖3 用戶(hù)登陸時(shí)序圖如圖3所示,用戶(hù)首先在登陸界面的文本框中輸入登錄號(hào)和密碼,UserServlet獲取用戶(hù)輸入的登錄號(hào)和密碼,調(diào)用userImpl中的loginUser()方法將獲取的登錄號(hào)和密碼作為參數(shù)傳送至數(shù)據(jù)庫(kù)中執(zhí)行,并且返回執(zhí)行結(jié)果,UserServlet根據(jù)返回結(jié)果來(lái)判斷是否發(fā)生頁(yè)面跳轉(zhuǎn)和給出用戶(hù)提示信息。圖4 修改密碼時(shí)序圖如圖4所示,用戶(hù)首先在修改密碼頁(yè)面輸入

20、舊密碼、新密碼、確認(rèn)密碼,UserServlet獲取用戶(hù)輸入的舊密碼、新面貌、確認(rèn)密碼,并且調(diào)用userImpl中的updatePwd()函數(shù),以獲取的三個(gè)值作為參數(shù),updatePwd()將舊密碼發(fā)往數(shù)據(jù)庫(kù)中進(jìn)行驗(yàn)證,UserServlet根據(jù)驗(yàn)證結(jié)果來(lái)判斷密碼是否修改成功和傳送提示信息。修改密碼界面還要驗(yàn)證新密碼與確認(rèn)密碼是一致。第4章 系統(tǒng)實(shí)現(xiàn)4.1 登陸設(shè)計(jì)實(shí)現(xiàn)代碼段1 聲明接口:er;import java.sql.SQLException;import.csms.dao.model.UserInfo;import.mysql.jdbc.Res

21、ultSet;publicinterface Userinterface public ResultSet loginUser(String userLogin,String password) throws SQLException;/登陸驗(yàn)證說(shuō)明:此段代碼的作用是定義接口聲明相關(guān)的方法,public ResultSet loginUser(String userLogin,String password) throws SQLException;定義的是登陸驗(yàn)證方法,此方法聲名了在實(shí)現(xiàn)登陸的方法中需要傳進(jìn)的兩個(gè)參數(shù)String userLogin,String password,即登錄號(hào)和

22、登陸密碼。代碼段2 接口實(shí)現(xiàn):package .erImpl;import java.sql.SQLException;import .er.Userinterface;import .csms.dao.model.UserInfo;import .csms.db.DBconnection;import .mysql.jdbc.Connection;import .mysql.jdbc.PreparedStatement;import .mysql.jdbc.ResultSet;import .mysql.jdbc.Statement;publi

23、c class Userimpl implements Userinterface DBconnection db=null;Connection conn=null; Statement pst=null;private String password; public Userimpl() throws ClassNotFoundException, SQLException db=new DBconnection(); conn=db.getConn(); pst=(Statement) conn.createStatement(); /登陸驗(yàn)證/public ResultSet logi

24、nUser(String userLogin, String password) throws SQLException / TODO Auto-generated method stubStringBuffer strsql=new StringBuffer();strsql.append( select * from usertable where );strsql.append( userLogin=+userLogin+ and );strsql.append( password=+password+);ResultSet rs=(ResultSet) pst.executeQuery

25、(strsql.toString();return rs;說(shuō)明:此段代碼是先前定義的接口的實(shí)現(xiàn)部分,StringBuffer strsql=new StringBuffer();定義了一個(gè)字符串strsql。代碼strsql.append( select * from usertable where );strsql.append( userLogin=+userLogin+ and );strsql.append( password=+password+);是拼寫(xiě)sql語(yǔ)句,意思是在數(shù)據(jù)庫(kù)中查詢(xún)用戶(hù)的登錄名和密碼。ResultSet rs=(ResultSet) pst.executeQue

26、ry(strsql.toString();return rs;意思是將sql語(yǔ)句執(zhí)行,并且將執(zhí)行后的結(jié)果集合賦值給rs,最后返回rs。db=new DBconnection();conn=db.getConn();pst=(Statement) conn.createStatement(); 此段代碼是進(jìn)行數(shù)據(jù)庫(kù)的連接。代碼段3 數(shù)據(jù)庫(kù)連接:publicclass DBconnection privatestatic String url=jdbc:mysql:/:3306/csms; /數(shù)據(jù)庫(kù)的URLprivatestatic String user=root;/訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)

27、的用戶(hù)名privatestatic String pwd=123456; /訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)的密碼public Connection conn;publicConnection getConn() throws ClassNotFoundException, SQLException Class.forName(.mysql.jdbc.Driver);/裝載JDBC驅(qū)動(dòng)程序conn=(Connection) DriverManager.getConnection(url,user,pwd);returnconn; publicvoid closeConn() throws SQLException

28、conn.close();/關(guān)閉數(shù)據(jù)庫(kù)連接 說(shuō)明:privatestatic String url=jdbc:mysql:/:3306/csms;說(shuō)明了數(shù)據(jù)庫(kù)CSMS的地址,此段代碼的主要使用是控制數(shù)據(jù)庫(kù)的連接。代碼段4 檢測(cè)輸入域:function doLogin()if(idFrmMain.userid.value=) alert(請(qǐng)用戶(hù)輸入賬號(hào)!);return ; if(idFrmMain.psword.value=) alert(請(qǐng)用戶(hù)輸入密碼!);return ; idFrmMain.action=UserServlet?opt=login; idFrmMain.

29、submit();說(shuō)明:if(idFrmMain.userid.value=)和if(idFrmMain.psword.value=)是用于判斷登陸界面用于輸入登錄號(hào)和登陸密碼的兩個(gè)文本框中的值是否為空,當(dāng)用戶(hù)點(diǎn)擊“登陸”按鈕時(shí)若userid和psword還為空,則提醒用戶(hù)輸入登錄號(hào)和登陸密碼。idFrmMain.action=UserServlet?opt=login;idFrmMain.submit();意思是當(dāng)用戶(hù)點(diǎn)擊登陸后將調(diào)用UserServlet中的方法。代碼段5 登陸驗(yàn)證與頁(yè)面跳轉(zhuǎn):publicvoid dologin( ServletRequest request, Servl

30、etResponse response)throws ServletException, IOException, SQLException Session session=request.getSession(); String user_name=request.getParameter(userid);/獲得頁(yè)面輸入的登錄號(hào) String user_pwd=request.getParameter(psword);/獲得頁(yè)面輸入的登錄密碼 ResultSet rs=userInter.loginUser(user_name, user_pwd);if(rs.next()session.s

31、etAttribute(userLogin,user_name); response.sendRedirect(Main.htm); /頁(yè)面的跳轉(zhuǎn),驗(yàn)證成功進(jìn)入主頁(yè)面,否則任然停留在登陸頁(yè)面/else String msg=用戶(hù)密碼錯(cuò)誤; request.setAttribute(msg, msg); RequestDispatcher rd=request.getRequestDispatcher(login.jsp); rd.forward(request, response); 說(shuō)明:String user_name=request.getParameter(userid);是用于獲取登

32、陸頁(yè)面輸入的登錄號(hào)。String user_pwd=request.getParameter(psword);是用于獲取登陸頁(yè)面輸入的登錄密碼。ResultSet rs=userInter.loginUser(user_name, user_pwd);調(diào)用loginUser方法,將user_name, user_pwd作為參數(shù)傳入到loginUser方法中,并且將結(jié)果集賦值給rs。if(rs.next()是對(duì)re.next()進(jìn)行邏輯判斷,若邏輯值為1則執(zhí)行中間部分的方法。 session.setAttribute(userLogin,user_name);是將變量user_name以u(píng)ser

33、Login為名字保存在session中。response.sendRedirect(Main.htm);表示從當(dāng)前servlet跳轉(zhuǎn)到Main.htl頁(yè)面。else String msg=用戶(hù)密碼錯(cuò)誤; request.setAttribute(msg, msg); RequestDispatcher rd=request.getRequestDispatcher(login.jsp); rd.forward(request, response); 表示當(dāng)re.next()邏輯判斷為0時(shí)提醒用戶(hù)錯(cuò)誤信息,并且任然停留在登陸頁(yè)面,即login.jsp。4.2 修改密碼設(shè)計(jì)實(shí)現(xiàn)代碼段1定義接口:p

34、er;import java.sql.SQLException;import.csms.dao.model.UserInfo;import.mysql.jdbc.ResultSet;publicinterface Userinterface publicint updatePwd(String userLogin,String oldPwd,String newPwd) throws SQLException, ClassNotFoundException;/修改密碼說(shuō)明:此段代碼的作用是定義接口聲明相關(guān)的方法,public int updatePwd(S

35、tring userLogin,String oldPwd,String newPwd) throws SQLException, ClassNotFoundException;定義了修改密碼方法,此方法聲明了在實(shí)現(xiàn)修改密碼的方法中需要傳進(jìn)的三個(gè)參數(shù)String userLogin,String oldPwd,String newPwd,即登錄號(hào)、舊密碼和新密碼。代碼段 2處理數(shù)據(jù):publicint updatePwd(String userLogin,String oldPwd,String newPwd) throws SQLException, ClassNotFoundExcepti

36、on/ TODO Auto-generated method stubStringBuffer strSql=new StringBuffer();strSql.append(select * from usertable where);/拼寫(xiě)sql字符串strSql.append( userLogin=+userLogin+and password=+oldPwd+);DBconnection db=new DBconnection();/連接數(shù)據(jù)庫(kù)Connection conn=db.getConn();PreparedStatement pst=(PreparedStatement) c

37、onn.prepareStatement(strSql.toString();/將SQL語(yǔ)句傳送至服務(wù)器或數(shù)據(jù)庫(kù)ResultSet rs=(ResultSet) pst.executeQuery();/執(zhí)行語(yǔ)句,返回結(jié)果集if(rs.next()StringBuffer strUpdate=new StringBuffer(); strUpdate.append(update usertable set password=+newPwd+ where userLogin=+userLogin+); PreparedStatement pst1=(PreparedStatement) conn.

38、prepareStatement(strUpdate.toString();/將SQL語(yǔ)句傳送至服務(wù)器或數(shù)據(jù)庫(kù)return pst1.executeUpdate(); /執(zhí)行sql語(yǔ)句,并且返回結(jié)果集elsereturn -1;說(shuō)明:strSql.append(select * from usertable where);strSql.append( userLogin=+userLogin+and password=+oldPwd+);此段代碼是在拼寫(xiě)sql語(yǔ)句。pst=(PreparedStatement)conn.prepareStatement(strSql.toString();。此

39、段代碼是將拼寫(xiě)好的sql語(yǔ)句送入mysql數(shù)據(jù)庫(kù)中。ResultSet rs=(ResultSet) pst.executeQuery();此段代碼是將送入數(shù)據(jù)庫(kù)中sql語(yǔ)句執(zhí)行,并且將執(zhí)行后的結(jié)果集賦值給rs。if(rs.next()此代碼是對(duì)rs.next()進(jìn)行邏輯判斷,當(dāng)邏輯為真時(shí)執(zhí)行strUpdate.append(update usertablesetpassword=+newPwd+ where userLogin=+userLogin+);PreparedStatement pst1=(PreparedStatement) conn.prepareStatement(strUp

40、date.toString();即系統(tǒng)將用戶(hù)設(shè)定的新密碼發(fā)送到后臺(tái)服務(wù)器中,服務(wù)器在數(shù)據(jù)庫(kù)的用戶(hù)信息表中將用戶(hù)登錄密碼設(shè)置成新密碼。代碼段3 在頁(yè)面對(duì)舊密碼、新密碼、確認(rèn)密碼進(jìn)行驗(yàn)證:function save()if(idFrmMain.oldPwd.value=) alert(請(qǐng)?zhí)顚?xiě)舊密碼);return; if(idFrmMain.newPwd.value!=&idFrmMain.reNewPwd.value!=)if(idFrmMain.newPwd.value!=idFrmMain.reNewPwd.value) alert(新密碼和確認(rèn)密碼不一致);return; else ale

41、rt(新密碼和確認(rèn)密碼不能為空);return; idFrmMain.action=UserServlet?opt=updatePwd; idFrmMain.submit();說(shuō)明:if(idFrmMain.oldPwd.value=)此段代碼的作用是判斷oldPwd的值是否為空,若為空則彈出“請(qǐng)?zhí)顚?xiě)舊密碼”的錯(cuò)誤提醒。if(idFrmMain.newPwd.value!=&idFrmMain.reNewPwd.value!=)if(idFrmMain.newPwd.value!=idFrmMain.reNewPwd.value)此段代碼是在判斷用戶(hù)輸入的新密碼和確認(rèn)密碼是否為空和是否相等,若

42、輸入域?yàn)榭談t提醒用戶(hù)輸入新密碼和確認(rèn)密碼,若新密碼和確認(rèn)密碼不一致則提醒用戶(hù)輸入一致的新密碼和確認(rèn)密碼。idFrmMain.action=UserServlet?opt=updatePwd;意思是用戶(hù)選擇修改密碼后系統(tǒng)會(huì)調(diào)用UserServlet中的方法。代碼段4 獲取頁(yè)面的操作類(lèi)型:public void doPost( ServletRequest request, ServletResponse response)throws ServletException, IOException String opt=request.getParameter(opt); System.out.pr

43、intln(opt); if(opt.equals(updatePwd) /判斷是否選擇修改密碼操作 try doUpdatePwd(request,response); /執(zhí)行doUpdatePwd()方法 catch (ClassNotFoundException e) / TODO Auto-generated catch blocke.printStackTrace(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace(); 說(shuō)明:opt是java里已經(jīng)定義好的一種機(jī)制,用來(lái)獲取頁(yè)面上的

44、一些信息,if(opt.equals(“updatePwd”)是在判斷opt取到的值是否等于“updatePwd”,若等于則調(diào)用doUpdatePwd(request,response)方法。代碼段5 修改密碼的主要方法:public void doUpdatePwd( ServletRequest request, ServletResponse response)throws ServletException, IOException, SQLException, ClassNotFoundException Session session=request.getSession();/聲明

45、session String userName=(String)session.getAttribute(userLogin);/獲取用戶(hù)登陸 的登錄號(hào) String oldPwd=request.getParameter(oldPwd);/獲取舊密碼 String newPwd=request.getParameter(newPwd);/獲取新密碼 int result=userInter.updatePwd(userName, oldPwd, newPwd);/調(diào)用updatePwd()函數(shù),并且傳進(jìn)userName, oldPwd, newPwd三個(gè)參數(shù) String msg=;if(r

46、esult=-1) msg=舊密碼驗(yàn)證失敗; else msg=密碼修改成功; request.setAttribute(msg, msg);/將變量msg存儲(chǔ)在msg中 RequestDispatcher rd=request.getRequestDispatcher(common/password1001.jsp);/將msg提示信息傳送至頁(yè)面 rd.forward(request, response);說(shuō)明:String userName=(String)session.getAttribute(userLogin);String oldPwd=request.getParameter(

47、oldPwd);String newPwd=request.getParameter(newPwd);意思是用request獲取用戶(hù)登陸時(shí)得登錄名并且存儲(chǔ)在session中,再使用getAttribute()函數(shù)將session中的值賦給userName。然后依次使用request將“oldPwd”和“newPwd”中的值賦給oldPwd和 newP result=userInter.updatePwd(userName, oldPwd, newPwd);表示調(diào)用UserImpl中的upodatePwd()方法,并且將userName, oldPwd, newPwd作為參數(shù)傳進(jìn)方法

48、體中。request.setAttribute(msg, msg);此段代碼的意思是將變量msg保存在msg中。RequestDispatcher rd=request.getRequestDispatcher(common/password1001.jsp);此段代碼的作用是將msg提示信息傳送到頁(yè)面上來(lái),common/password1001.jsp就是修改密碼頁(yè)面的地址。第5章 總結(jié)通過(guò)這次服裝管理系統(tǒng)(csms)實(shí)訓(xùn)的學(xué)習(xí),我有以下收獲:第一,對(duì)利用mysql數(shù)據(jù)庫(kù)作為開(kāi)發(fā)系統(tǒng)工程的數(shù)據(jù)存儲(chǔ)工具有了很大程度的提升。第二,對(duì)軟件工程的工程分析方法有了很大程度的提升,比如:對(duì)需求分析、概要

49、設(shè)計(jì)分析、業(yè)務(wù)描述、可行性分析等有了一些自己的見(jiàn)解。第三,環(huán)境不再單一,通過(guò)搭建配置JDK、tomcat、myeclipse之間的環(huán)境變量讓我感受到真正做項(xiàng)目不是使用某一種工具就能實(shí)現(xiàn)的。第四,對(duì)java語(yǔ)言的熟練度有了很大提升,同時(shí)也領(lǐng)悟到j(luò)sp的強(qiáng)大力量。第五,這次的服裝管理系統(tǒng)是我們一個(gè)團(tuán)隊(duì)共同開(kāi)發(fā)而成的,我們每個(gè)人在團(tuán)隊(duì)里面都擔(dān)任著不同的角色,但是每個(gè)角色都是這個(gè)團(tuán)隊(duì)不可或缺的部分,因此,通過(guò)這次實(shí)訓(xùn),我加強(qiáng)了自己的團(tuán)隊(duì)意識(shí)、團(tuán)隊(duì)合作能力等??傊?,這次服裝管理系統(tǒng)實(shí)訓(xùn)對(duì)于我整個(gè)能力方面是有很大提升的。參考文獻(xiàn)1 王行言. java語(yǔ)言與面向?qū)ο蟪绦蛟O(shè)計(jì) M. :清華大學(xué),2007.11

50、附錄/接口聲明er;import java.sql.SQLException;import.csms.dao.model.UserInfo;import.mysql.jdbc.ResultSet;publicinterface Userinterface publicint updatePwd(String userLogin,String oldPwd,String newPwd) throws SQLException, ClassNotFoundException;/修改密碼public ResultSet loginUser(String use

51、rLogin,String password) throws SQLException;/登陸驗(yàn)證/接口實(shí)現(xiàn)部分erImpl;import java.sql.SQLException;er.Userinterface;import.csms.dao.model.UserInfo;import.csms.db.DBconnection;import.mysql.jdbc.Connection;import.mysql.jdbc.PreparedStatement;import.mysql.jdbc.ResultSet;

52、import.mysql.jdbc.Statement;publicclass Userimpl implements Userinterface DBconnection db=null;Connection conn=null; Statement pst=null;private String password;public Userimpl() throws ClassNotFoundException, SQLException db=new DBconnection();conn=db.getConn();pst=(Statement) conn.createStatement()

53、; /登陸驗(yàn)證/public ResultSet loginUser(String userLogin, String password) throws SQLException / TODO Auto-generated method stubStringBuffer strsql=new StringBuffer();strsql.append( select * from usertable where );/拼寫(xiě)修改strsql.append( userLogin=+userLogin+ and );strsql.append( password=+password+);ResultS

54、et rs=(ResultSet) pst.executeQuery(strsql.toString();/執(zhí)行語(yǔ)句并且返回結(jié)果集return rs;/修改密碼/publicint updatePwd(String userLogin,String oldPwd,String newPwd) throws SQLException, ClassNotFoundException/ TODO Auto-generated method stubStringBuffer strSql=new StringBuffer();strSql.append(select * from usertable

55、where);/拼寫(xiě)sql字符串strSql.append( userLogin=+userLogin+and password=+oldPwd+);DBconnection db=new DBconnection();/連接數(shù)據(jù)庫(kù)Connection conn=db.getConn();PreparedStatement pst=(PreparedStatement) conn.prepareStatement(strSql.toString();/將SQL語(yǔ)句傳送至服務(wù)器或數(shù)據(jù)庫(kù)ResultSet rs=(ResultSet) pst.executeQuery();/執(zhí)行語(yǔ)句,返回結(jié)果集i

56、f(rs.next()StringBuffer strUpdate=new StringBuffer(); strUpdate.append(update usertable set password=+newPwd+ where userLogin=+userLogin+); PreparedStatement pst1=(PreparedStatement) conn.prepareStatement(strUpdate.toString();/將SQL語(yǔ)句傳送至服務(wù)器或數(shù)據(jù)庫(kù)return pst1.executeUpdate();/執(zhí)行sql語(yǔ)句,并且返回結(jié)果集elsereturn -1

57、;/登陸與修改密碼的處理package.csms.servlet;import java.io.IOException;importjava.io.PrintWriter;import java.sql.SQLException;import javax.servlet.RequestDispatcher;import javax.servlet.ServletException;import javax.servlet. . Servlet;import javax.servlet. . ServletRequest;import javax.servlet. . ServletRespon

58、se;import javax.servlet. . Session;er.Userinterface;erImpl.Userimpl;import.mysql.jdbc.ResultSet;publicclassUserServletextends Servlet Userinterface userInter=null;public UserServlet() throws ClassNotFoundException, SQLException super();userInter=new Userimpl();publicvoid destroy() super.destroy(); / Just puts destroy string in log/ Put your code herepublicvoid doGet( ServletRequest request, ServletResponse response)throws ServletException, IOException doPost(request,response);/調(diào)用doPost方法publicvoid doPost( ServletRequest request, Ser

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論