struts2通配符_基于Struts2框架的名片管理系統

ba1fb8722a5c7015a2dd2928a895fda5.png

本篇博文將分享一款基于Struts2框架的名片管理系統,JSP引擎為Tomcat9.0,數據庫采用的是MySQL5.5,集成開發環境為Eclipse IDE for Java EE Developers。

名片管理系統主要包括用戶管理和名片管理功能。用戶功能主要包括:用戶注冊、用戶登錄、修改密碼和修改基本信息功能;名片管理主要包括:添加名片、查詢名片、修改名片、刪除名片功能。

希望通過本篇的學習,朋友們不僅能掌握Struts 2應用開發的流程、方法和技術,還能夠熟悉名片管理的業務需求、設計以及實現。

1、系統設計

1、系統功能需求

名片管理系統主要包含以下功能:

  • 非注冊用戶可以注冊為注冊用戶;
  • 成功注冊的用戶,可以登錄系統;
  • 成功登錄的用戶,可以添加、修改、刪除以及瀏覽自己客戶的名片信息;
  • 成功登錄的用戶,可以在個人中心查看自己的基本信息和修改密碼。

2、系統模塊劃分

用戶登錄成功后,進入管理主頁面(main.jsp)可以對自己的客戶名片進行管理。系統模塊劃分,如下圖所示。

bc24a0758d2d19d173e65fdb1f3d004c.png

2、數據庫設計

系統采用加載純Java數據庫驅動程序的方式連接MySQL5.5數據庫。在MySQL5.5的數據庫card中,共創建兩張與系統相關的數據表:usertable和cardinfo。

1、數據庫概念結構設計

根據系統設計與分析,可以設計出如下數據結構:

  • 用戶

包括用戶名和密碼,注冊用戶名唯一。

  • 名片

包括ID、名稱、電話、郵箱、單位、職務、地址、Logo以及所屬用戶。其中,ID唯一,“所屬用戶”與“1.用戶”關聯。根據以上的數據結構,結合數據庫設計的特點,可畫出如下圖所示的數據庫概念結構圖。

8c474d7fad27a50e6cfe100fb0314a83.png

其中,ID為正整數,值是從1開始遞增的序列。

2、數據庫邏輯結構設計

將數據庫概念結構圖轉換為MySQL數據庫所支持的實際數據模型,即數據庫的邏輯結構。用戶信息表(usertable)的設計,如下表所示:

f561c438f178a1e5f47fd95ef1e2bd22.png

名片信息表(cardinfo)的設計,如下表所示:

06a2f7d822b1b3df512dfaba7a2168a9.png

3、系統管理

1、導入相關的jar包

新建一個Struts 2應用cardManage,在所有JSP頁面中盡量使用EL表達式和JSTL標簽,又因為系統采用純Java數據庫驅動程序連接MySQL5.5以及JSON數據轉換。所以,需要將對應的JAR包復制到WebContentWEB-INFlib的目錄下,JAR包如下圖所示:

a9176ef5c5931bb2d8670115749947c0.png

2、JSP頁面管理

由于篇幅受限,這里僅附上運行效果圖,所有實現見源代碼。

  • 管理主頁面

注冊用戶在瀏覽器地址欄中輸入http://localhost:8080/struts2cardManage/login.jsp訪問登錄頁面,登錄成功后,進入管理主頁面(main.jsp),main.jsp的運行效果如下圖所示:

852377c8e2898463c27c0b0abf7c407c.png
  • 程序報錯頁面

當Java程序運行出現異常時,系統會執行全局頁面error.jsp。

  • 無權限提示頁面

在沒有成功登錄的情況下,對名片進行增、刪、改、查等操作時,系統執行無權限操作,提示頁面nologin.jsp。

  • 包文件和配置文件管理

本系統的包文件和配置文件層次結構如下圖所示:

8740e27b70d2979cf25a3c1db8f9ffe8.png

所需包文件說明如下所示:

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,效果如下圖所示:

79c04d153b56117755dfdf3ec8a50d7c.png

在deleteSelect.jsp頁面所示的注冊頁面中,輸入“姓名”后,系統會根據Ajax異步請求路徑“jsontest/isUse.action”檢測“姓名”是否可用。輸入合法的用戶信息后,單擊“注冊”按鈕,實現注冊功能。

3、登錄

在系統默認主頁index.jsp,單擊“登錄”鏈接,打開登錄頁面login.jsp,效果如下圖所示:

0b00e2845990c9b7a8b1ab8341b9b757.png

用戶輸入姓名和密碼后,系統將對姓名和密碼進行驗證。如果姓名和密碼同時正確,則成功登錄,將用戶信息保存到session對象,并進入系統管理主頁面(main.jsp);如果姓名或密碼有誤,則提示錯誤。

單擊登錄界面中“確定”按鈕,通過請求路徑“user/login.action”,將登錄請求提交給Action。配置文件user.xml根據請求路徑找到對應Action類UserAction(6.1節)的login方法處理登錄請求。

4、修改密碼

單擊主頁面中“個人中心”菜單的“修改密碼”菜單項,打開密碼修改頁面updatePWD.jsp。頁面效果如下圖所示:

7c1da259331a46c66f2f30c25ac8da8b.png

在密碼修改頁面中輸入“新密碼”和“確認新密碼”后,單擊“修改密碼”按鈕,將請求通過“user/updatePwd.action”提交給Action。配置文件user.xml根據請求路徑找到對應Action類UserAction(6.1節)的updatePwd方法處理密碼修改請求。

5、基本信息

單擊主頁面中“個人中心”菜單的“基本信息”菜單項,打開基本信息頁面userInfo.jsp。頁面效果如下圖所示:

c92f8c08c9b861cf0e3fbb705021a972.png

5、名片管理

與系統相關的JSP頁面、CSS和圖片位于WebRoot目錄下。在第3節中,已經介紹了系統的數據庫操作,所以本節只是介紹JSP頁面和Action的實現。

名片管理主要包括:添加名片、查詢名片、修改名片、刪除名片功能。

1、Action的實現

CardAction類負責處理“名片管理”的功能,包括添加、修改、刪除、查詢等。

2、添加名片

用戶輸入客戶名片的姓名、電話、E-Mail、單位、職務、地址、Logo后,單擊“提交”按鈕實現添加。如果成功,則跳轉到查詢頁面;如果失敗,則回到添加頁面。addCard.jsp頁面實現添加名片信息的輸入界面,如下圖所示:

eb433430e77a6586d13c1e6599f7349c.png

單擊上圖中“提交”按鈕,將添加請求通過“card/addCard.action”提交給Action處理。配置文件card.xml根據請求路徑找到對應Action類CardAction(5.1節)的add方法處理添加功能。添加成功跳轉到查詢Action;添加失敗回到添加頁面。

3、查詢名片

管理員登錄成功后,進入名片管理系統的主頁面,在主頁面中初始顯示查詢頁面queryCards.jsp,查詢頁面運行效果如下圖所示:

6b091480f1e914945df36906bd268235.png

單擊主頁面中“名片管理”菜單的“查詢名片”菜單項,打開查詢頁面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。名片詳細信息頁面如下圖所示:

3997285bff3b529013bef9d3c29c0368.png

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頁面的運行效果如下圖所示。

04b0fa043d6e7e279fa35abe27771392.png

updateCard.jsp頁面的運行效果如下圖所示:

bf8bec38812852c46461456a0dc3d052.png

5、刪除名片

單擊主頁面中“管理名片”菜單的“刪除名片”菜單項,打開刪除查詢頁面deleteSelect.jsp。

“刪除名片”菜單項超鏈接的目標地址是個Action。找到對應Action類CardAction的方法query,在該方法中,根據動作類型,將查詢結果轉發給deleteSelect.jsp頁面,頁面效果如下圖所示:

9eabe1bbf8b6d08cf779cdbd7a18961f.png

在上圖的復選框中選擇要刪除的名片,單擊“刪除”按鈕,將要刪除名片的ID提交給控制器Action。找到對應Action類CardAction的方法delete,在該方法中,根據動作類型執行批量刪除的業務處理。

單擊上圖中的“刪除”超鏈接,將當前行的名片ID提交給控制器Action,找到對應Action類CardAction的方法delete,在該方法中,根據動作類型執行單個刪除的業務處理。刪除成功后,進入刪除查詢頁面。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/446039.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/446039.shtml
英文地址,請注明出處:http://en.pswp.cn/news/446039.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

音視頻處理 Clion搭建ffmpeg開發環境

參考鏈接 Ubuntu 20.04 搭建 CLion FFmpeg 開發環境_TYYJ-洪偉的博客-CSDN博客 安裝CLion 首先到 jetbrains 官網 https://www.jetbrains.com/clion/ 下載 CLion 安裝包 CLion-2021.1.tar.gz使用finalshell和ubuntu之間配置ssh鏈接將Clion-2022.1.tar.gz 使用move移動到 /hom…

python安裝好的界面_手把手教你配置最漂亮的PyCharm界面,Python程序員必備!

高逼格超美的IDE界面,是每個程序員的夢想!隨著人工智能/機器學習的興起,Python作為一門“漂亮的語言”,再次獲得廣大程序員的關注。而JetBrains出品的PyCharm無疑是最好用的Python IDE之一。俗話說“工欲善其事,必先利…

音視頻處理 ffmpeg中級開發 H264編碼

開發介紹 libavcodec/avcodec.h常用的數據結構 AVCodec 編碼器結構體AVCodecContext 編碼器上下文AVFrame 解碼后的幀結構體內存的分配和釋放 av_frame_alloc 申請av_frame_free() 釋放avcodec_alloc_context3() 創建編碼器上下文avcodec_free_context() 釋放編碼器上下文解碼…

微信公眾號python人工智能回復_python實現微信機器人: 登錄微信、消息接收、自動回復功能...

安裝wxpypip install -u wxpy登錄微信# 導入模塊from wxpy import *# 初始化機器人,掃碼登陸bot bot()運行以上代碼,會生成一個二維碼,通過圖片掃描二維碼即可登錄微信。如果是在服務器上運行代碼,無法顯示圖片的時候&#xff0c…

音視頻處理 ffmpeg中級開發 視頻轉圖片

操作流程 目的:使用FFmpeg將視頻的每一幀數據轉換為圖片1,打開輸入的多媒體文件,檢索多媒體文件中的流信息2,查找視頻流的索引號,通過索引號獲取數據流;通過解析視頻流中的編碼參數得到解碼器ID&#xff0…

python非阻塞多線程socket_Python實現web服務器之 單進程單線程非阻塞實現并發及其原理...

在Python實現web服務器入門學習多進程、多線程實現并發HTTP服務器中,我們知道可以分別通過多進程、多線程的方式實現并發服務器,那么,是否可以通過單進程單線程的程序實現類似功能呢?實際上,在Python多任務學習分別通過yield關鍵…

企業知識庫與知識管理:如何統一戰略與實踐

在知識密集型的現代企業中,知識已經成為了一種寶貴的資產。如何有效地管理和利用這一資產,成為企業持續發展與創新的關鍵。企業知識庫與知識管理作為知識經濟的兩大支柱,它們的重要性不言而喻。但很多時候,我們發現企業的知識管理…

音視頻處理 ffmpeg中級開發 AAC編碼

介紹 編碼流程類似于視頻編碼,1,查找編碼器;2,設定參數,打開編碼器;3,數據編碼編碼函數 avcodec_encode_audio2 已經被棄用FFmpeg 過時 Api 匯總整理 - 灰色飄零 - 博客園 未成功使用 舊版本i…

虛擬機為Ubuntu分配空間

當虛擬機里面的創建的ubuntu鏡像需要更大的空間,將ubuntu關掉之后,對應調整硬盤的空間大小,由先前的20G上調至50G,但是先前的20G內存空間映射的位置是/dev/sda,后面增加的這段內存空間30G映射到/dev/sda1因此&#xff…

為什么人會擺高姿態_Yo , 你為什么喜歡沖浪?

“你為什么喜歡沖浪?” 那天木木突然問我。我愣住了。此時一道碧波恰從防潑堤(jetty)的那頭升起,木木轉頭望去,視線追著那道浪緩緩向西,直至它破碎成白色的浪花。我瞥見他眼神中的光亮,就和小孩…

音視頻處理 ffmpeg初級開發 命令行工具-實用命令

參考鏈接 ffmpeg Documentation作者:smallest_one 鏈接:FFmpeg命令行工具-實用命令 - 簡書 目錄 1,help命令使用 1.1 ffmpeg命令的語法結構1.2 獲取詳細的help信息1.3 打印幫助或者支持能力的信息1.4 全局選項1.5 文件選項1.6 視頻/音頻/字…

不同的電腦打印預覽不同怎么解決_條碼打印軟件中標簽預覽正常打印無反應怎么解決...

在使用條碼打印軟件制作標簽時,有客戶反饋,標簽打印預覽正常的,但是打印無反應,咨詢是怎么回事?今天針對這個情況,可以參考以下方法進行解決。一、預覽正常情況下,打印沒反應(1)在條碼打印軟件中設計好標簽之后&#…

python安裝scrapy_Python安裝Scrapy的種種

這幾天沒什么事,決定把自己抓代理的小工具用scrapy改寫。然而安裝的時候卻出現以下問題,反復失敗:Unable to find vcvarsall.bat經過一番查找,找到了這個文件:\Lib\distutils\_msvccompiler.py它里邊長這樣&#xff1a…

MP4文件格式的相關內容

參考鏈接 FFmpeg中mp4的demuxer(mov.c)代碼閱讀 - 簡書mp4文件格式解析 - 簡書mp4封裝格式各box類型講解及IBP幀計算_青丶空゛的博客-CSDN博客5分鐘入門MP4文件格式 - 程序猿小卡 - 博客園?關于M4A文件的隨機訪問 - 云社區 - 騰訊云 MP4文件格式相關內容 MP4文件由許多box組…

華三交換機如何進入配置_學校機房項目交換機的如何配置,理解這篇,交換機配置不再難...

弱電項目中,交換機的配置是無法避免的,大部分的項目都有可能會涉及到,尤其是機房等網絡項目,本期我們就通過一個實際項目案例來詳細了解交換機在項目中的應用配置,如果我們平時對交換機配置不熟,這個案例可…

百度地圖遷徙大數據_百度地圖大數據:五一高速擁堵不似預期,廣深成熱門遷出入地...

五一假期在即,你是否做好了“出行功課”?高速擁堵水平降低、公眾出門不出城、公園成踏青賞景熱門目的地……在全國疫情防控仍未松懈的時刻,2020年的五一或許注定與往年不同。近日,百度地圖發布2020五一假期安全出行大數據&#xf…

音視頻的基礎知識 視頻播放器原理/封裝格式/視頻音頻編碼數據/視頻像素數據/音頻采樣數據

參考鏈接 FFMpeg視頻播放器的制作-雷霄驊(去除電流音版本)_嗶哩嗶哩_bilibili 視頻播放器原理 播放視頻文件的流程YUV是一張屏幕中像素點的數值封裝格式 MP4 RMVB TS FLV AVI將視頻和音頻碼流按照一定的格式存儲在一個文件中封裝格式分析工具&#xf…

科立捷7代寫頻軟件_天大廈大“兩碩士論文雷同”通報,代寫買賣論文

澎湃新聞記者 薛莎莎天津大學、廈門大學7月10日晚就“兩碩士論文雷同”一事,分別發出調查處理通報。通報稱,涉事兩名學生存在由他人代寫、買賣論文的學術作假的行為,均撤銷其所獲碩士學位,收回、注銷碩士學位證書。澎湃新聞注意到…

FFMpeg命令行基礎

參考鏈接 FFMpeg視頻播放器的制作-雷霄驊(去除電流音版本)_嗶哩嗶哩_bilibili音視頻處理 ffmpeg初級開發 命令行工具-實用命令_MY CUP OF TEA的博客-CSDN博客 介紹 FFMpeg是視頻播放和轉碼的內核 使用 win中ffmpeg.exe用于視頻轉碼簡單命令&#xff1…

悲觀鎖和樂觀鎖_面試必備之樂觀鎖與悲觀鎖

何謂悲觀鎖與樂觀鎖樂觀鎖對應于生活中樂觀的人總是想著事情往好的方向發展,悲觀鎖對應于生活中悲觀的人總是想著事情往壞的方向發展。這兩種人各有優缺點,不能不以場景而定說一種人好于另外一種人。大家可以點擊加群【JAVA架構知識學習討論群】47398464…