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