目錄
1、系統設計
2、資料庫設計
3、系統管理
4、用戶管理
5、名片管理
本篇博文將分享一款基于Struts2框架的名片管理系統,JSP引擎為Tomcat9.0,資料庫采用的是MySQL5.5,集成開發環境為Eclipse IDE for Java EE Developers,
名片管理系統主要包括用戶管理和名片管理功能,用戶功能主要包括:用戶注冊、用戶登錄、修改密碼和修改基本資訊功能;名片管理主要包括:添加名片、查詢名片、修改名片、洗掉名片功能,
希望通過本篇的學習,朋友們不僅能掌握Struts 2應用開發的流程、方法和技術,還能夠熟悉名片管理的業務需求、設計以及實作,
1、系統設計
1、系統功能需求
名片管理系統主要包含以下功能:
- 非注冊用戶可以注冊為注冊用戶;
- 成功注冊的用戶,可以登錄系統;
- 成功登錄的用戶,可以添加、修改、洗掉以及瀏覽自己客戶的名片資訊;
- 成功登錄的用戶,可以在個人中心查看自己的基本資訊和修改密碼,
2、系統模塊劃分
用戶登錄成功后,進入管理主頁面(main.jsp)可以對自己的客戶名片進行管理,系統模塊劃分,如下圖所示,
2、資料庫設計
系統采用加載純Java資料庫驅動程式的方式連接MySQL5.5資料庫,在MySQL5.5的資料庫card中,共創建兩張與系統相關的資料表:usertable和cardinfo,
1、資料庫概念結構設計
根據系統設計與分析,可以設計出如下資料結構:
- 用戶
包括用戶名和密碼,注冊用戶名唯一,
- 名片
包括ID、名稱、電話、郵箱、單位、職務、地址、Logo以及所屬用戶,其中,ID唯一,“所屬用戶”與“1.用戶”關聯,根據以上的資料結構,結合資料庫設計的特點,可畫出如下圖所示的資料庫概念結構圖,
其中,ID為正整數,值是從1開始遞增的序列,
2、資料庫邏輯結構設計
將資料庫概念結構圖轉換為MySQL資料庫所支持的實際資料模型,即資料庫的邏輯結構,用戶資訊表(usertable)的設計,如下表所示:
名片資訊表(cardinfo)的設計,如下表所示:
3、系統管理
1、匯入相關的jar包
新建一個Struts 2應用cardManage,在所有JSP頁面中盡量使用EL運算式和JSTL標簽,又因為系統采用純Java資料庫驅動程式連接MySQL5.5以及JSON資料轉換,所以,需要將對應的JAR包復制到WebContent\WEB-INF\lib的目錄下,JAR包如下圖所示:
2、JSP頁面管理
由于篇幅受限,這里僅附上運行效果圖,所有實作見源代碼,
-
管理主頁面
注冊用戶在瀏覽器地址欄中輸入http://localhost:8080/struts2cardManage/login.jsp訪問登錄頁面,登錄成功后,進入管理主頁面(main.jsp),main.jsp的運行效果如下圖所示:
-
程式報錯頁面
當Java程式運行出現例外時,系統會執行全域頁面error.jsp,
- 無權限提示頁面
在沒有成功登錄的情況下,對名片進行增、刪、改、查等操作時,系統執行無權限操作,提示頁面nologin.jsp,
- 包檔案和組態檔管理
本系統的包檔案和組態檔層次結構如下圖所示:
所需包檔案說明如下所示:
action包
該包是系統中所有Action類,包括名片管理的Action類和個人中心的Action類,
Conf檔案夾
該檔案夾的xml檔案是本系統所有Action類的配置,“card.xml”是名片管理Action類的配置,“user.xml”是個人中心Action類的配置,這些xml檔案需要在struts.xml檔案中包含進來,
dao包
dao包中存放的Java程式是實作資料庫的操作,其中BaseDao是一個父類,該類負責連接資料庫;CardDao是BaseDao的一個子類,有關名片管理的資料訪問在該類中;UserDao是BaseDao的另一個子類,有關用戶的資料訪問在該類中,另外,該包中還有一個名為“jdbc.properties”的檔案,該檔案是有關資料庫的配置,包括驅動類名、資料庫URL、用戶名以及密碼等,
entity包
該包中有1個物體類:Card,封裝名片資訊,
interceptor包
該包中有1個攔截器類:LoginValidateInterceptor,進行權限控制,
util包
該包中MyUtil類是獲得一個時間字串的工具類,
所需組態檔檔案說明如下所示:
struts.xml
在軟體系統開發中,模塊化設計是最常用的一種方式,為了方便管理,本系統也不例外,將不同模塊的配置分別放在不同的組態檔中,然后,在struts.xml檔案中,通過include引入這些組態檔,
user.xml
該組態檔負責配置和用戶有關的Action,
card.xml
該組態檔負責配置個人中心有關的Action,在此處使用了通配符“*”動態匹配Action的請求名稱,
4、用戶管理
用戶功能主要包括:用戶注冊、用戶登錄、修改密碼和修改基本資訊功能,
1、Action的實作
UserAction類負責處理“會員注冊”、“會員登錄”、“安全退出”以及“個人中心”的功能,
2、注冊
在系統默認主頁index.jsp,單擊“注冊”鏈接,打開注冊頁面register.jsp,效果如下圖所示:
在deleteSelect.jsp頁面所示的注冊頁面中,輸入“姓名”后,系統會根據Ajax異步請求路徑“jsontest/isUse.action”檢測“姓名”是否可用,輸入合法的用戶資訊后,單擊“注冊”按鈕,實作注冊功能,
3、登錄
在系統默認主頁index.jsp,單擊“登錄”鏈接,打開登錄頁面login.jsp,效果如下圖所示:
用戶輸入姓名和密碼后,系統將對姓名和密碼進行驗證,如果姓名和密碼同時正確,則成功登錄,將用戶資訊保存到session物件,并進入系統管理主頁面(main.jsp);如果姓名或密碼有誤,則提示錯誤,
單擊登錄界面中“確定”按鈕,通過請求路徑“user/login.action”,將登錄請求提交給Action,組態檔user.xml根據請求路徑找到對應Action類UserAction(6.1節)的login方法處理登錄請求,
4、修改密碼
單擊主頁面中“個人中心”選單的“修改密碼”選單項,打開密碼修改頁面updatePWD.jsp,頁面效果如下圖所示:
在密碼修改頁面中輸入“新密碼”和“確認新密碼”后,單擊“修改密碼”按鈕,將請求通過“user/updatePwd.action”提交給Action,組態檔user.xml根據請求路徑找到對應Action類UserAction(6.1節)的updatePwd方法處理密碼修改請求,
5、基本資訊
單擊主頁面中“個人中心”選單的“基本資訊”選單項,打開基本資訊頁面userInfo.jsp,頁面效果如下圖所示:
5、名片管理
與系統相關的JSP頁面、CSS和圖片位于WebRoot目錄下,在第3節中,已經介紹了系統的資料庫操作,所以本節只是介紹JSP頁面和Action的實作,
名片管理主要包括:添加名片、查詢名片、修改名片、洗掉名片功能,
1、Action的實作
CardAction類負責處理“名片管理”的功能,包括添加、修改、洗掉、查詢等,
2、添加名片
用戶輸入客戶名片的姓名、電話、E-Mail、單位、職務、地址、Logo后,單擊“提交”按鈕實作添加,如果成功,則跳轉到查詢頁面;如果失敗,則回到添加頁面,addCard.jsp頁面實作添加名片資訊的輸入界面,如下圖所示:
單擊上圖中“提交”按鈕,將添加請求通過“card/addCard.action”提交給Action處理,組態檔card.xml根據請求路徑找到對應Action類CardAction(5.1節)的add方法處理添加功能,添加成功跳轉到查詢Action;添加失敗回到添加頁面,
3、查詢名片
管理員登錄成功后,進入名片管理系統的主頁面,在主頁面中初始顯示查詢頁面queryCards.jsp,查詢頁面運行效果如下圖所示:
單擊主頁面中“名片管理”選單的“查詢名片”選單項,打開查詢頁面queryCards.jsp,“查詢名片”選單項超鏈接的目標地址是個Action,該Action的請求路徑為“card/queryCard.action”,組態檔card.xml根據請求路徑找到對應Action類的query方法處理查詢功能,在該方法中,根據動作型別(“修改查詢”、“查詢”以及“洗掉查詢”),將查詢結果轉發到不同頁面,
在queryCards.jsp頁面中單擊“詳情”超鏈接,打開名片詳細資訊頁面detail.jsp,“詳情”超鏈接的目標地址是個Action,該Action的請求路徑為“card/selectACard.action”,組態檔card.xml根據請求路徑找到對應Action類的selectA方法處理查詢一個名片功能,將查詢結果轉發給詳細資訊頁面detail.jsp,名片詳細資訊頁面如下圖所示:
4、修改名片
單擊主頁面中“管理名片”選單的“修改名片”選單項,打開修改查詢頁面updateSelect.jsp,“修改名片”選單項超鏈接的目標地址是個Action,找到對應Action類CardAction的方法query,在該方法中,根據動作型別,將查詢結果轉發給修改查詢頁面,
單擊updateSelect.jsp頁面中的“修改”超鏈接打開修改名片資訊頁面updateCard.jsp,“修改”超鏈接的目標地址是個Action,找到對應Action類CardAction的方法selectA,在該方法中,根據動作型別,將查詢結果轉發給updateCard.jsp頁面顯示,
輸入要修改的資訊后,單擊“提交”按鈕,將名片資訊提交給Action,找到對應Action類CardAction的方法update,在方法中執行修改的業務處理,修改成功,進入查詢名片,修改失敗,回到updateCard.jsp頁面,updateSelect.jsp頁面的運行效果如下圖所示,
updateCard.jsp頁面的運行效果如下圖所示:
5、洗掉名片
單擊主頁面中“管理名片”選單的“洗掉名片”選單項,打開洗掉查詢頁面deleteSelect.jsp,
“洗掉名片”選單項超鏈接的目標地址是個Action,找到對應Action類CardAction的方法query,在該方法中,根據動作型別,將查詢結果轉發給deleteSelect.jsp頁面,頁面效果如下圖所示:
在上圖的復選框中選擇要洗掉的名片,單擊“洗掉”按鈕,將要洗掉名片的ID提交給控制器Action,找到對應Action類CardAction的方法delete,在該方法中,根據動作型別執行批量洗掉的業務處理,
單擊上圖中的“洗掉”超鏈接,將當前行的名片ID提交給控制器Action,找到對應Action類CardAction的方法delete,在該方法中,根據動作型別執行單個洗掉的業務處理,洗掉成功后,進入洗掉查詢頁面,
請關注微信公眾號,回復關鍵字:名片管理系統,獲取原始碼~
本文整理來源于:
1、《Java Web開發從入門到實戰》陳恒 姜學 主編
2、清華計算機學堂
CSDN認證博客專家
視覺/OpenCV
IoT/嵌入式
Python
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/152561.html
標籤:其他
