版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、長沙學院課 程 設(shè) 計 說 明 書題目服裝庫存管理系統(tǒng)系(部)計算機科學與技術(shù)系專 業(yè) ( 班 級 ) 2010 軟件工程(服務(wù)外包)1 班姓名曾祥炫學號2010022111指導教師潘怡起止日期2012.3.12 2012.7.6課程設(shè)計任務(wù)書課程名稱:基礎(chǔ)編程能力考核課程名稱:基礎(chǔ)編程能力考核設(shè)計題目:服裝庫存管理系統(tǒng)設(shè)計題目:服裝庫存管理系統(tǒng)已知技術(shù)參數(shù)和設(shè)計要求:已知技術(shù)參數(shù)和設(shè)計要求:1. 問題描述(功能要求) :服裝庫存管理系統(tǒng)主要包括:(1)系統(tǒng)管理系統(tǒng)管理包括用戶管理和貨號管理,能進行增加、刪除、修改和查找的操作。(2)庫存管理庫存管理包括入庫單管理和出庫單管理。入庫單管理包括入
2、庫單基本信息管理和入庫單明細管理,并能分別對入庫單和入庫單明細進行增加、刪除、修改和查找的操作。出庫單管理包括出庫單基本信息管理和出庫單明細管理,并能分別對出庫單和出庫單明細進行增加、刪除、修改和查找的操作。(3)輔助管理輔助管理包括修改密碼。2.2. 運行環(huán)境要求:運行環(huán)境要求:(1)客戶端:Windows 操作系統(tǒng)IE 瀏覽器(2)服務(wù)器:windows server 版操作系統(tǒng)Tomcat web 服務(wù)器My SQL 數(shù)據(jù)庫服務(wù)器3. 技術(shù)要求:強調(diào)軟件工程過程文檔的規(guī)范化。需求分析規(guī)格說明書與用例規(guī)約系統(tǒng)數(shù)據(jù)庫設(shè)計,時序圖,類圖,MVC 架構(gòu)系統(tǒng)完整編碼,采用 JSP、Servlet
3、技術(shù)設(shè)計工作量:設(shè)計工作量:40 課時工作計劃:工作計劃:(1)(1) 20102010 級軟件工程所有班級級軟件工程所有班級16 課時: 1609 理論講座20 課時:上機、調(diào)試。計算機系機房4 課時:答辯。計算機系機房。(具體時間地點老師先申請,機動安排)指導教師簽名:日期:教研室主任簽名:日期:系主任簽名:日期:長沙學院課程設(shè)計鑒定表姓名曾祥炫學號2010022111專業(yè)軟件工程班級10軟件1班設(shè)計題目服裝庫存管理系統(tǒng)指導教師潘怡指導教師意見:評定等級:教師簽名:日期:答辯小組意見:評定等級:答辯小組長簽名:日期:教研室意見:教研室主任簽名:日期:系(部)意見:系主任簽名:日期:說明課程
4、設(shè)計成績分“優(yōu)秀” 、 “良好” 、 “中等” 、 “及格” 、 “不及格”五類;項目實訓(四)工作計劃表項目實訓(四)工作計劃表周周次次實訓內(nèi)容實訓內(nèi)容備備注注第 0 周(2012.3.122012.4.6)1實訓啟動召集項目組學生開會明確實訓的內(nèi)容和要求袁偉森老師講課致遠樓 1609第一周(2012.5.142012.5.18)1系統(tǒng)需求分析設(shè)計致遠樓 1409第二周(2012.5.212012.5.25)1組長討論會,討論需求分析進度情況完善需求文檔2. 用例和用例規(guī)約設(shè)計致遠樓 1409第三周(2012.5.282012.6.1)1系統(tǒng)詳細設(shè)計,類模型設(shè)計2時序圖的設(shè)計致遠樓 1408
5、第五周(2012.6.42012.6.8)1第一階段任務(wù)檢查需求分析2. 開發(fā)工具的使用致遠樓 1408第六周(2012.6.112012.6.15)1Struts2 技術(shù)講解2. 第二階段任務(wù)檢查數(shù)據(jù)庫的設(shè)計致遠樓 1408第七周(2012.6.182012.6.22)1. 代碼實現(xiàn)2. 答疑調(diào)試致遠樓 1408第八周(2012.6.252012.6.29)1. 代碼實現(xiàn)2. 答疑調(diào)試致遠樓 1408第九周(2012.7.22012.7.6)1答辯致遠樓 1401目錄目錄第第 1 章章 設(shè)計內(nèi)容與要求設(shè)計內(nèi)容與要求.11.1 設(shè)計內(nèi)容設(shè)計內(nèi)容.11.21.2 設(shè)計要求設(shè)計要求.1第第 2 2
6、 章章 需求分析需求分析.32.12.1 整體用例圖整體用例圖.32.22.2 用例規(guī)約用例規(guī)約.42.32.3 需求描述需求描述.5第第 3 3 章章 系統(tǒng)設(shè)計系統(tǒng)設(shè)計.63.13.1 數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫設(shè)計..1 數(shù)據(jù)庫對象命名規(guī)則數(shù)據(jù)庫對象命名規(guī)則. .2 數(shù)據(jù)項編碼規(guī)則數(shù)據(jù)項編碼規(guī)則. .3 用戶信息表結(jié)構(gòu)用戶信息表結(jié)構(gòu). 63.23.2 類圖設(shè)計類圖設(shè)計.73.33.3 時序圖設(shè)計時序圖設(shè)計.8第第 4 4 章章 系統(tǒng)實現(xiàn)系統(tǒng)實現(xiàn).104.14.1 登陸設(shè)計實現(xiàn)登陸設(shè)計實現(xiàn).104.24.2 修改密碼設(shè)計實現(xiàn)修改密碼設(shè)計實現(xiàn). 13
7、第第 5 5 章章 總結(jié)總結(jié).18參考文獻參考文獻.19附錄附錄.201第第 1 章章 設(shè)計內(nèi)容與要求設(shè)計內(nèi)容與要求1.1 設(shè)計內(nèi)容設(shè)計內(nèi)容服裝庫存管理系統(tǒng)主要的設(shè)計內(nèi)容包括:(1)系統(tǒng)管理系統(tǒng)管理包括用戶管理和貨號管理。 在用戶管理中要包括新建系統(tǒng)用戶、 刪除系統(tǒng)用戶、查看系統(tǒng)用戶詳細信息、更新系統(tǒng)用戶、查詢系統(tǒng)用戶、系統(tǒng)用戶登陸和修改密碼。在貨號管理中包括新建貨號、刪除貨號、查看貨號詳細信息、更新貨號、查詢貨號(2)庫存管理庫存管理包括入庫單管理和出庫單管理。入庫單管理包括新建入庫單、刪除入庫單、查看入庫單詳細信息、更新入庫單、提交入庫單、查詢?nèi)霂靻?、新增入庫單明細、查看入庫單明細的詳細?/p>
8、息、更新入庫單明細、刪除入庫單明細、查詢?nèi)霂靻蚊骷?。出庫單管理包括新建出庫單、刪除出庫單、查看出庫單的詳細信息、更新出庫單、提交出庫單、查詢出庫單、新增出庫單明細、查看出庫單明細的詳細信息、更新出庫單明細、刪除出庫單明細、查詢出庫單明細。(3)輔助管理輔助管理包括修改密碼。1.21.2 設(shè)計要求設(shè)計要求(1)系統(tǒng)管理用戶管理中在新建系統(tǒng)用戶時用戶登錄號、 用戶姓名和用戶密碼為必選項,如果沒有填寫應(yīng)該要能給出提示信息。用戶能夠根據(jù)用戶登錄號和用戶姓名來查詢系統(tǒng)用戶的詳細信息。 系統(tǒng)用戶能夠根據(jù)用戶登錄號和密碼來成功登陸系統(tǒng)。 用戶在成功登陸后可以使用舊密碼來設(shè)置新密碼。貨號管理中在新建貨號時貨號
9、、品名、色號、尺碼、面料、里料、出廠價、零售價為必選項,若有一項沒有填寫應(yīng)該要能給出提示信息。用戶可以根據(jù)貨號、色號、尺碼來查看貨號詳細信息。(2)庫存管理入庫單管理中在新建入庫單時入庫日期、所入倉庫、來源是必選項,如果有一項沒有填寫,系統(tǒng)要能夠給出提示信息, 備注為非必選項。用戶成功登陸系統(tǒng)后可以根據(jù)單據(jù)號來查看入庫單的詳細信息。 用戶在更新入庫單時要先查詢到要更新的入庫單,然后再進行入庫單的更新。 用戶在保存入庫單信息后可以進行新增入庫單詳細信息的操作,新建時可以設(shè)定入庫單明細的貨號、色號、尺碼和數(shù)量。出庫單管理中在新建出庫單時出庫日期、所出倉庫、接收人、接收人電話為必選項,若有一項沒有填
10、寫則給出提示信息, 其中備注為非必選項。用戶成功登陸系統(tǒng)后可以根據(jù)單據(jù)號來查看出庫單的詳細信息。 用戶在更新出庫單時要先查詢到要更新的出庫單,然后再進行出庫單的更新。 用戶在保存出庫單信息后可以進行新增出庫單詳細信息的操作,新建時可以2設(shè)定出庫單明細的貨號、色號、尺碼和數(shù)量。(3)輔助管理用戶在成功登陸系統(tǒng)后可以進行修改密碼, 修改密碼時舊密碼、 新密碼和確認密碼為必選項,如果有一項沒有填寫,系統(tǒng)應(yīng)該給出提示信息。舊密碼必須要與登錄時使用的密碼一致,否則無法修改密碼,新密碼和確認密碼也必須保持一致方能成功修改。3第第 2 章章 需求分析需求分析2.1 整體用例圖整體用例圖System新建系統(tǒng)用
11、戶刪除系統(tǒng)用戶查看系統(tǒng)用戶詳細信息更新系統(tǒng)用戶查詢系統(tǒng)用戶系統(tǒng)用戶登陸修改密碼新建貨號刪除貨號查看貨號詳細信息更新貨號查詢貨號新建入庫單刪除入庫單查看入庫單詳細信息更新入庫單提交入庫單查詢?nèi)霂靻涡略鋈霂靻蚊骷毑榭慈霂靻蚊骷毜脑敿毿畔⒏氯霂靻蚊骷殑h除入庫單明細查詢?nèi)霂靻蚊骷毿陆ǔ鰩靻蝿h除出庫單查看出庫單的詳細信息更新出庫單提交出庫單查詢出庫單新增出庫單明細查看出庫單明細的詳細信息更新出庫單明細刪除出庫單明細查詢出庫單明細用戶圖 1 全局用例圖42.2 用例規(guī)約用例規(guī)約表 1用戶登陸用例規(guī)約用例名稱:用戶登陸用例 ID:CSMS-01角色:用戶簡要說明:用戶利用登錄號密碼登陸系統(tǒng)前置條件:無基本
12、事件流:1、用戶輸入登錄號2、用戶輸入密碼3、用戶點擊“登陸”按鈕其它事件流:1、用戶輸入的登錄號和密碼為必選項,如有一項為空,系統(tǒng)要能給出提示信息2、 系統(tǒng)接收用戶輸入的登錄號和密碼并且將其與數(shù)據(jù)庫中的用戶信息表中的對應(yīng)數(shù)據(jù)進行驗證,驗證成功則允許用戶登陸,否則提醒用戶輸入正確的登錄號和密碼。異常事件流:1、登陸號或者密碼為空就點擊登陸。2、登錄號或者密碼錯誤后置條件:系統(tǒng)用戶信息保存到數(shù)據(jù)庫中, 并且頁面能夠?qū)⒂脩糨斎氲臄?shù)據(jù)傳送至后臺服務(wù)器中表 2 修改密碼用例規(guī)約用例名稱修改密碼用例 IDCSMS-02角色用戶。簡要說明用戶修改密碼前置條件用戶已經(jīng)登錄系統(tǒng)基本事件流1、用戶請求修改密碼。
13、2、系統(tǒng)彈出修改密碼頁面。3、用戶輸入舊密碼。4、用戶輸入新密碼,確認新密碼。5、點擊“完成” 。其他事件流1、舊密碼、新密碼、確認密碼為必選項、任何一項為空系統(tǒng)都要發(fā)出提示信息2、系統(tǒng)接收用戶輸入的舊密碼,并且將舊密碼與數(shù)據(jù)庫中的密碼進行驗證,若新密碼與確認密碼一致,且驗證通過,則允許用戶修改密碼異常事件流1、用戶輸入的舊密碼與用戶登陸使用的密碼不一致。52、用戶輸入的新密碼與確認密碼不一致。后置條件系統(tǒng)能夠獲取用戶在頁面上輸入的舊密碼、新密碼和確認密碼,并且對舊密碼與登陸密碼進行驗證。2.3 需求描述需求描述1 1用戶登陸用戶登陸需求編號:CODEMN-1需求描述:用戶使用登錄號和密碼來成
14、功登陸系統(tǒng)。CODEMN-1-1 用戶輸入登錄號和密碼CODEMN-1-2 頁面獲取用戶輸入的登錄號和密碼,并且與數(shù)據(jù)庫中的數(shù)據(jù)進行比較CODEMN-1-3 證成功則允許用戶登陸,否則提醒用戶輸入正確的登錄號和密碼。2用戶修改密碼用戶修改密碼需求編號:CODEMN-2需求描述:用戶修改密碼CODEMN-2-1:用戶輸入舊密碼、新密碼、確認密碼。CODEMN-2-2: 系統(tǒng)接收用戶輸入的舊密碼, 并且將舊密碼與數(shù)據(jù)庫中的密碼進行驗證,同時將獲取到的新密碼和確認密碼進行比較。CODEMN-2-3:若舊密碼驗證通過,且新密碼與確認密碼一致,則允許用戶修改密碼,否則給出錯誤提示信息,密碼修改不成功。6
15、第第 3 3 章章 系統(tǒng)設(shè)計系統(tǒng)設(shè)計3.1 數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫設(shè)計3.1.1 數(shù)據(jù)庫對象命名規(guī)則數(shù)據(jù)庫對象命名規(guī)則表 3 數(shù)據(jù)庫對象命名規(guī)則數(shù)據(jù)庫對象命名規(guī)則備注表Tbl_功能描述字符串例如:tbl_user 用戶表視圖View_功能描述字符串例如:view_userInfo 用戶視圖存儲過程Proc_功能描述字符串例如: proc_draw 取款存儲過程3.1.2 數(shù)據(jù)項編碼規(guī)則數(shù)據(jù)項編碼規(guī)則表 4 數(shù)據(jù)項編碼規(guī)則數(shù)據(jù)項命名規(guī)則數(shù)據(jù)類型長度范圍備注登錄名用戶姓名開頭字母字符10 位無密碼6 位長的任意數(shù)字字符10 位無貨號2 個大寫字母+數(shù)字字符10 位無色號顏色開頭字母+數(shù)字字符10 位無刪
16、除狀態(tài)邏輯數(shù)字 1 或 0整數(shù)2無尺碼正常人身高如 170整數(shù)無入庫日期年+月+日日期無3.1.3 用戶信息表結(jié)構(gòu)用戶信息表結(jié)構(gòu)表 5 用戶信息表表名用戶信息表數(shù)據(jù)庫用戶主鍵userLogin其他排序字段無索引字段無序號字段名稱數(shù)據(jù)類型(精度范圍)允許為空 Y/N唯一Y/N區(qū)別度默認值約束條件/說明01userLoginVarchar(20)NY高無主鍵02usernameVarchar(20)NY高無03PasswordVarchar(20)NN高無04RemarkVarchar(20)FN低無05flagIntNN高無7sql 腳本create table user(userLogin v
17、archar(20) not null primary key,userNamevarchar(20) not null,Passwordintnot null ,remarkvarchar(20),flagint not null);備注存儲用戶信息3.2 類圖設(shè)計類圖設(shè)計圖 2 系統(tǒng)登陸和修改密碼的類圖在登陸和修改密碼中, 主要運用到userImpl、 UserServlet和Userinfo三個類。 userImpl中實現(xiàn)了 Userinterface 中定義的方法,在 userImpl 中可以拼寫 sql 語句來實現(xiàn)對數(shù)據(jù)庫的操作,即可以修改 Userinfo 中的屬性,BConnec
18、tion 起到了連接數(shù)據(jù)庫的作用。UserServlet 根據(jù)用戶在頁面上操作來決定調(diào)用什么方法,doPost()可以判斷用戶在頁面上JS 頁面上選擇的操作的類型, 根據(jù)操作類型來決定 dologin()和 doUpdatePwd()方法的調(diào)用。83.3 時序圖設(shè)計時序圖設(shè)計圖 3 用戶登陸時序圖如圖 3 所示,用戶首先在登陸界面的文本框中輸入登錄號和密碼,UserServlet 獲取用戶輸入的登錄號和密碼,調(diào)用 userImpl 中的 loginUser()方法將獲取的登錄號和密碼作為參數(shù)傳送至數(shù)據(jù)庫中執(zhí)行,并且返回執(zhí)行結(jié)果,UserServlet 根據(jù)返回結(jié)果來判斷是否發(fā)生頁面跳轉(zhuǎn)和給出用
19、戶提示信息。圖 4 修改密碼時序圖如圖 4 所示,用戶首先在修改密碼頁面內(nèi)輸入舊密碼、新密碼、確認密碼,UserServlet9獲取用戶輸入的舊密碼、新面貌、確認密碼,并且調(diào)用 userImpl 中的 updatePwd()函數(shù),以獲取的三個值作為參數(shù), updatePwd()將舊密碼發(fā)往數(shù)據(jù)庫中進行驗證, UserServlet 根據(jù)驗證結(jié)果來判斷密碼是否修改成功和傳送提示信息。 修改密碼界面還要驗證新密碼與確認密碼是一致。10第第 4 4 章章 系統(tǒng)實現(xiàn)系統(tǒng)實現(xiàn)4.1 登陸設(shè)計實現(xiàn)登陸設(shè)計實現(xiàn)代碼段代碼段1 聲明接口:聲明接口:packagepackage
20、er;importimport java.sql.SQLException;importimport com.csms.dao.model.UserInfo;importimport com.mysql.jdbc.ResultSet;publicpublic interfaceinterface Userinterface publicpublic ResultSet loginUser(String userLogin,String password)throwsthrows SQLException;/登陸驗證說 明 :說 明 : 此 段 代 碼 的 作 用 是 定 義 接 口 聲 明 相
21、 關(guān) 的 方 法 ,publicResultSetloginUser(String userLogin,String password) throws SQLException;定義的是登陸驗證方法,此方法聲名了在實現(xiàn)登陸的方法中需要傳進的兩個參數(shù)StringuserLogin,String password,即登錄號和登陸密碼。代碼段代碼段 2 接口實現(xiàn):接口實現(xiàn):package erImpl;import java.sql.SQLException;import er.Userinterface;import com.csms
22、.dao.model.UserInfo;import com.csms.db.DBconnection;import com.mysql.jdbc.Connection;import com.mysql.jdbc.PreparedStatement;import com.mysql.jdbc.ResultSet;import com.mysql.jdbc.Statement;publicclass Userimpl implements Userinterface DBconnection db=null;Connection conn=null;Statement pst=null;priv
23、ate String password;public Userimpl() throws ClassNotFoundException, SQLExceptiondb=new DBconnection();conn=db.getConn();pst=(Statement) conn.createStatement();11/登陸驗證/public ResultSet loginUser(String userLogin, String password) throwsSQLException / TODO Auto-generated method stubStringBuffer strsq
24、l=new StringBuffer();strsql.append( select * fromusertablewhere );strsql.append( userLogin=+userLogin+ and );strsql.append( password=+password+);ResultSet rs=(ResultSet) pst.executeQuery(strsql.toString();return rs;說明:說明:此段代碼是先前定義的接口的實現(xiàn)部分,StringBuffer strsql=new StringBuffer();定 義 了 一 個 字 符 串 strsql
25、 。 代 碼 strsql.append( select * fromusertablewhere);strsql.append( userLogin=+userLogin+ and );strsql.append( password=+password+);是拼寫 sql 語句,意思是在數(shù)據(jù)庫中查詢用戶的登錄名和密碼。ResultSet rs=(ResultSet)pst.executeQuery(strsql.toString();return rs;意思是將 sql 語句執(zhí)行,并且將執(zhí)行后的結(jié)果集合賦值給 rs,最后返回 rs。db=new DBconnection();conn=db.
26、getConn();pst=(Statement) conn.createStatement(); 此段代碼是進行數(shù)據(jù)庫的連接。代碼段代碼段 3 數(shù)據(jù)庫連接:數(shù)據(jù)庫連接:publicpublic classclass DBconnection privateprivate staticstatic Stringurl=jdbc:mysql:/:3306/csms; /數(shù)據(jù)庫的URLprivateprivate staticstatic Stringuser=root; /訪問數(shù)據(jù)庫的用戶名privateprivate staticstatic Stringpwd=123456
27、; /訪問數(shù)據(jù)庫的密碼publicpublic Connection conn;publicpublic Connection getConn() throwsthrows ClassNotFoundException, SQLExceptionClass.forName(com.mysql.jdbc.Driver); /裝載JDBC驅(qū)動程序conn=(Connection) DriverManager.getConnection(url,user,pwd);returnreturn conn;publicpublic voidvoid closeConn() throwsthrows SQL
28、Exceptionconn.close();/關(guān)閉數(shù)據(jù)庫連接12說明:說明:private static String url=jdbc:mysql:/:3306/csms;說明了數(shù)據(jù)庫 CSMS 的地址,此段代碼的主要使用是控制數(shù)據(jù)庫的連接。代碼段代碼段 4 4 檢測輸入域:檢測輸入域:functionfunction doLogin()ifif(idFrmMain.userid.value=)alert(請用戶輸入賬號!);returnreturn ;ifif(idFrmMain.psword.value=)alert(請用戶輸入密碼!);returnreturn ;id
29、FrmMain.action=UserServlet?opt=login;idFrmMain.submit();說明說明:if(idFrmMain.userid.value=)和if(idFrmMain.psword.value=)是用于判斷登陸界面用于輸入登錄號和登陸密碼的兩個文本框中的值是否為空, 當用戶點擊“登陸”按鈕時若userid和psword還為空,則提醒用戶輸入登錄號和登陸密碼。idFrmMain.action=UserServlet?opt=login;idFrmMain.submit();意思是當用戶點擊登陸后將調(diào)用UserServlet中的方法。代碼段代碼段5 登陸驗證及頁
30、面跳轉(zhuǎn):登陸驗證及頁面跳轉(zhuǎn):publicpublic voidvoid dologin(HttpServletRequest request, HttpServletResponseresponse)throwsthrows ServletException, IOException, SQLException HttpSession session=request.getSession();String user_name=request.getParameter(userid);/獲得頁面輸入的登錄號String user_pwd=request.getParameter(psword);
31、/獲得頁面輸入的登錄密碼ResultSet rs=userInter.loginUser(user_name, user_pwd);ifif(rs.next()13session.setAttribute(userLogin,user_name);response.sendRedirect(Main.htm);/頁面的跳轉(zhuǎn), 驗證成功進入主頁面,否則任然停留在登陸頁面/elseelseString msg=用戶密碼錯誤;request.setAttribute(msg, msg);RequestDispatcherrd=request.getRequestDispatcher(login.js
32、p);rd.forward(request, response);說明:說明:String user_name=request.getParameter(userid);是用于獲取登陸頁面輸入的登錄號。String user_pwd=request.getParameter(psword);是用于獲取登陸頁面輸入的登錄密碼。ResultSet rs=userInter.loginUser(user_name, user_pwd);調(diào)用 loginUser方法,將user_name, user_pwd作為參數(shù)傳入到loginUser方法中,并且將結(jié)果集賦值給 rs。if(rs.next()是對
33、re.next()進行邏輯判斷,若邏輯值為 1 則執(zhí)行中間部分的方法。session.setAttribute(userLogin,user_name);是將變量user_name以userLogin為名字保存在session中。response.sendRedirect(Main.htm);表示從當前servlet跳轉(zhuǎn)到Main.htl頁面。elseString msg=用戶密碼錯誤;request.setAttribute(msg, msg);RequestDispatcherrd=request.getRequestDispatcher(login.jsp);rd.forward(req
34、uest, response);表示當 re.next()邏輯判斷為 0 時提醒用戶錯誤信息,并且任然停留在登陸頁面,即login.jsp。4.24.2 修改密碼設(shè)計實現(xiàn)修改密碼設(shè)計實現(xiàn)代碼段代碼段 1 1 定義接口:定義接口:packagepackage er;importimport java.sql.SQLException;importimport com.csms.dao.model.UserInfo;14importimport com.mysql.jdbc.ResultSet;publicpublic interfaceinterface User
35、interface publicpublic intint updatePwd(String userLogin,String oldPwd,String newPwd)throwsthrows SQLException, ClassNotFoundException;/修改密碼說明:說明:此段代碼的作用是定義接口聲明相關(guān)的方法,public int updatePwd(StringuserLogin,StringoldPwd,StringnewPwd)throwsSQLException,ClassNotFoundException;定義了修改密碼方法,此方法聲明了在實現(xiàn)修改密碼的方法中需要
36、傳進的三個參數(shù)String userLogin,String oldPwd,String newPwd,即登錄號、舊密碼和新密碼。代碼段代碼段 2 2 處理數(shù)據(jù):處理數(shù)據(jù):publicpublic intint updatePwd(String userLogin,String oldPwd,String newPwd) throwsthrowsSQLException, ClassNotFoundException/ TODOTODO Auto-generated method stubStringBuffer strSql=newnew StringBuffer();strSql.appe
37、nd(select * fromusertablewhere);/拼寫sql字符串strSql.append( userLogin=+userLogin+andpassword=+oldPwd+);DBconnection db=newnew DBconnection();/連接數(shù)據(jù)庫Connection conn=db.getConn();PreparedStatement pst=(PreparedStatement)conn.prepareStatement(strSql.toString();/將SQL語句傳送至服務(wù)器或數(shù)據(jù)庫ResultSet rs=(ResultSet) pst.e
38、xecuteQuery();/執(zhí)行語句,返回結(jié)果集ifif(rs.next()StringBuffer strUpdate=newnew StringBuffer();strUpdate.append(update usertableset password=+newPwd+where userLogin=+userLogin+);PreparedStatement pst1=(PreparedStatement)conn.prepareStatement(strUpdate.toString();/將SQL語句傳送至服務(wù)器或數(shù)據(jù)庫returnreturn pst1.executeUpdate
39、(); /執(zhí)行sql語句,并且返回結(jié)果集elseelsereturnreturn -1;說 明 :說 明 : strSql.append(select * fromusertablewhere); strSql.append(userLogin=+userLogin+and password=+oldPwd+);此段代碼是在拼寫 sql 語句。15pst=(PreparedStatement)conn.prepareStatement(strSql.toString();。 此段代碼是將拼寫好的 sql 語句送入 mysql 數(shù)據(jù)庫中。ResultSet rs=(ResultSet) pst.
40、executeQuery();此段代碼是將送入數(shù)據(jù)庫中 sql 語句執(zhí)行, 并且將執(zhí)行后的結(jié)果集賦值給rs。 if(rs.next()此代碼是對 rs.next()進行邏輯判斷,當邏輯為真時執(zhí)行 strUpdate.append(updateusertablesetpassword=+newPwd+whereuserLogin=+userLogin+);PreparedStatementpst1=(PreparedStatement)conn.prepareStatement(strUpdate.toString();即系統(tǒng)將用戶設(shè)定的新密碼發(fā)送到后臺服務(wù)器中,服務(wù)器在數(shù)據(jù)庫的用戶信息表中將用
41、戶登錄密碼設(shè)置成新密碼。代碼段代碼段 3 3 在頁面對舊密碼、新密碼、確認密碼進行驗證:在頁面對舊密碼、新密碼、確認密碼進行驗證:functionfunction save()ifif(idFrmMain.oldPwd.value=)alert(請?zhí)顚懪f密碼);returnreturn;ifif(idFrmMain.newPwd.value!=&idFrmMain.reNewPwd.value!=)ifif(idFrmMain.newPwd.value!=idFrmMain.reNewPwd.value)alert(新密碼和確認密碼不一致);returnreturn;elseelsea
42、lert(新密碼和確認密碼不能為空);returnreturn;idFrmMain.action=UserServlet?opt=updatePwd;idFrmMain.submit();說明:說明:ifif(idFrmMain.oldPwd.value=)此段代碼的作用是判斷oldPwd的值是否為空,若為空則彈出“請?zhí)顚懪f密碼”的錯誤提醒。ifif(idFrmMain.newPwd.value!=&idFrmMain.reNewPwd.value!=)ifif(idFrmMain.newPwd.value!=idFrmMain.reNewPwd.value)此段代碼是在判斷用戶輸入的
43、新密碼和確認密碼是否為空和是否相等, 若輸入域為空則提醒用戶輸入新密碼和確認密碼, 若新密碼和確認密碼不一致則提醒用戶輸入一致的新密碼和確認密碼。idFrmMain.action=UserServlet?opt=updatePwd;意思是用戶選擇修改密碼后系統(tǒng)會16調(diào)用 UserServlet 中的方法。代碼段代碼段 4 4 獲取頁面的操作類型:獲取頁面的操作類型:public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException Str
44、ing opt=request.getParameter(opt);System.out.println(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.prin
45、tStackTrace();說明:說明:opt 是 java 里已經(jīng)定義好的一種機制,用來獲取頁面上的一些信息,if(opt.equals(“updatePwd”)是在判斷 opt 取到的值是否等于“updatePwd”, 若等于則調(diào)用 doUpdatePwd(request,response)方法。代碼段代碼段 5 5 修改密碼的主要方法:修改密碼的主要方法:publicvoiddoUpdatePwd(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException,SQLExce
46、ption,ClassNotFoundException HttpSession session=request.getSession();/聲明 sessionString userName=(String)session.getAttribute(userLogin);/獲取用戶登陸 的登錄號String oldPwd=request.getParameter(oldPwd);/獲取舊密碼String newPwd=request.getParameter(newPwd);/獲取新密碼intresult=userInter.updatePwd(userName,oldPwd,newPwd)
47、;/ 調(diào) 用updatePwd()函數(shù),并且傳進 userName, oldPwd, newPwd 三個參數(shù)String msg=;if(result=-1)msg=舊密碼驗證失敗;else17msg=密碼修改成功;request.setAttribute(msg, msg);/將變量 msg 存儲在msg中RequestDispatcherrd=request.getRequestDispatcher(common/password1001.jsp);/將 msg 提示信息傳送至頁面rd.forward(request, response);說明:說明:String userName=(St
48、ring)session.getAttribute(userLogin);String oldPwd=request.getParameter(oldPwd);String newPwd=request.getParameter(newPwd);意思是用 request 獲取用戶登陸時得登錄名并且存儲在 session 中,再使用getAttribute()函數(shù)將 session 中的值賦給 userName。然后依次使用 request 將“oldPwd”和“newPwd”中的值賦給 oldPwd 和 newP result=userInter.updatePwd(userNam
49、e, oldPwd, newPwd);表示調(diào)用 UserImpl中的 upodatePwd()方法,并且將 userName, oldPwd, newPwd 作為參數(shù)傳進方法體中。request.setAttribute(msg, msg);此段代碼的意思是將變量 msg 保存在msg中。RequestDispatcherrd=request.getRequestDispatcher(common/password1001.jsp);此段代碼的作用是將 msg 提示信息傳送到頁面上來,common/password1001.jsp就是修改密碼頁面的地址。18第第 5 5 章章 總結(jié)總結(jié)通過這次
50、服裝管理系統(tǒng)(csms)實訓的學習,我有以下收獲:第一,對利用 mysql 數(shù)據(jù)庫作為開發(fā)系統(tǒng)工程的數(shù)據(jù)存儲工具有了很大程度的提升。 第二,對軟件工程的工程分析方法有了很大程度的提升,比如:對需求分析、概要設(shè)計分析、業(yè)務(wù)描述、可行性分析等有了一些自己的見解。第三,環(huán)境不再單一,通過搭建配置 JDK、tomcat、myeclipse 之間的環(huán)境變量讓我感受到真正做項目不是使用某一種工具就能實現(xiàn)的。第四,對 java 語言的熟練度有了很大提升,同時也領(lǐng)悟到 jsp 的強大力量。第五,這次的服裝管理系統(tǒng)是我們一個團隊共同開發(fā)而成的, 我們每個人在團隊里面都擔任著不同的角色,但是每個角色都是這個團隊不
51、可或缺的部分,因此,通過這次實訓,我加強了自己的團隊意識、團隊合作能力等??傊@次服裝管理系統(tǒng)實訓對于我整個能力方面是有很大提升的。19參考文獻參考文獻1 王行言.java 語言與面向?qū)ο蟪绦蛟O(shè)計 M.北京:清華大學出版社,2007.1120附附 錄錄/接口聲明package er;import java.sql.SQLException;import com.csms.dao.model.UserInfo;import com.mysql.jdbc.ResultSet;public interface Userinterface public int upd
52、atePwd(String userLogin,String oldPwd,String newPwd)throws SQLException, ClassNotFoundException;/修改密碼public ResultSet loginUser(String userLogin,String password) throwsSQLException;/登陸驗證/接口實現(xiàn)部分package erImpl;import java.sql.SQLException;import er.Userinterface;import
53、com.csms.dao.model.UserInfo;import com.csms.db.DBconnection;import com.mysql.jdbc.Connection;import com.mysql.jdbc.PreparedStatement;import com.mysql.jdbc.ResultSet;import com.mysql.jdbc.Statement;publicclass Userimpl implements Userinterface DBconnection db=null;Connection conn=null;Statement pst=n
54、ull;private String password;public Userimpl() throws ClassNotFoundException, SQLExceptiondb=new DBconnection();conn=db.getConn();pst=(Statement) conn.createStatement();/登陸驗證/public ResultSet loginUser(String userLogin, String password) throwsSQLException 21/ TODO Auto-generated method stubStringBuff
55、er strsql=new StringBuffer();strsql.append( select * fromusertablewhere );/拼寫修改strsql.append( userLogin=+userLogin+ and );strsql.append( password=+password+);ResultSet rs=(ResultSet) pst.executeQuery(strsql.toString();/執(zhí)行語句并且返回結(jié)果集return rs;/修改密碼/public int updatePwd(String userLogin,String oldPwd,St
56、ring newPwd)throws SQLException, ClassNotFoundException/ TODO Auto-generated method stubStringBuffer strSql=new StringBuffer();strSql.append(select * fromusertablewhere);/拼寫sql字符串strSql.append( userLogin=+userLogin+andpassword=+oldPwd+);DBconnection db=new DBconnection();/連接數(shù)據(jù)庫Connection conn=db.get
57、Conn();PreparedStatement pst=(PreparedStatement)conn.prepareStatement(strSql.toString();/將SQL語句傳送至服務(wù)器或數(shù)據(jù)庫ResultSet rs=(ResultSet) pst.executeQuery();/執(zhí)行語句,返回結(jié)果集if(rs.next()StringBuffer strUpdate=new StringBuffer();strUpdate.append(update usertablesetpassword=+newPwd+ where userLogin=+userLogin+);Pre
58、paredStatement pst1=(PreparedStatement)conn.prepareStatement(strUpdate.toString();/將SQL語句傳送至服務(wù)器或數(shù)據(jù)庫return pst1.executeUpdate(); /執(zhí)行sql語句,并且返回結(jié)果集elsereturn -1;/登陸及修改密碼的處理22package com.csms.servlet;import java.io.IOException;import java.io.PrintWriter;import java.sql.SQLException;import javax.servlet.
59、RequestDispatcher;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import er.Userinterface;import erImpl.Userimp
60、l;import com.mysql.jdbc.ResultSet;public class UserServlet extends HttpServlet Userinterface userInter=null;public UserServlet() throws ClassNotFoundException, SQLException super();userInter=new Userimpl();public void destroy() super.destroy(); / Just puts destroy string in log/ Put your code herepublic voi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度物流服務(wù)合同標的與服務(wù)內(nèi)容2篇
- 2025年度航空航天零部件采購合同模板3篇
- 2025彩妝造型行業(yè)消費者權(quán)益保護合作協(xié)議3篇
- 泰州職業(yè)技術(shù)學院《城市更新與方法》2023-2024學年第一學期期末試卷
- 2024版:變壓器買賣雙方權(quán)益保障合同3篇
- 2024年足療服務(wù)人員聘用協(xié)議樣本版B版
- 二零二五版2025年度個體美容美發(fā)店合伙合作協(xié)議3篇
- 二零二五版物聯(lián)網(wǎng)技術(shù)在農(nóng)業(yè)應(yīng)用合伙協(xié)議3篇
- 二零二五年度綠色建筑門窗安裝及節(jié)能認證協(xié)議3篇
- 二零二五版貨物搬運與物流信息平臺建設(shè)合同3篇
- 《精密板料矯平機 第1部分:型式和基本參數(shù)》
- 監(jiān)理報告范本
- 店鋪交割合同范例
- 大型活動LED屏幕安全應(yīng)急預案
- 2024年內(nèi)蒙古包頭市中考道德與法治試卷
- 湖南省長沙市2024-2025學年高二上學期期中考試地理試卷(含答案)
- 自來水質(zhì)量提升技術(shù)方案
- 金色簡約蛇年年終總結(jié)匯報模板
- 農(nóng)用地土壤環(huán)境質(zhì)量類別劃分技術(shù)指南(試行)(環(huán)辦土壤2017第97號)
- 反向開票政策解讀課件
- 工程周工作計劃
評論
0/150
提交評論