jsp居民社區(qū)交流站點(diǎn)mysql論文_第1頁
jsp居民社區(qū)交流站點(diǎn)mysql論文_第2頁
jsp居民社區(qū)交流站點(diǎn)mysql論文_第3頁
jsp居民社區(qū)交流站點(diǎn)mysql論文_第4頁
jsp居民社區(qū)交流站點(diǎn)mysql論文_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

山西大學(xué)商務(wù)學(xué)院本科畢業(yè)設(shè)計(jì)PAGE18目錄1. 緒論 11.1課題研究的目的 11.2課題研究的意義 12.系統(tǒng)開發(fā)環(huán)境及技術(shù)簡介 22.1系統(tǒng)開發(fā)環(huán)境 22.1.1Eclipse 22.1.2數(shù)據(jù)庫簡介 22.1.3Tomcat 22.2系統(tǒng)開發(fā)的思想與技術(shù) 22.2.1JSP技術(shù)與MVC模式以及系統(tǒng)的基本框架 22.2.2S.S.H框架的優(yōu)點(diǎn) 33.系統(tǒng)總體設(shè)計(jì) 53.1總體功能模塊 53.2系統(tǒng)管理員功能模塊 53.3用戶功能模塊 53.4板塊管理員功能模塊 63.5系統(tǒng)業(yè)務(wù)描述 63.6程序流程圖 74.系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn) 84.1系統(tǒng)和數(shù)據(jù)庫的配置 84.2概念模型設(shè)計(jì) 84.3數(shù)據(jù)庫邏輯模型 84.4數(shù)據(jù)庫表結(jié)構(gòu) 94.5平臺數(shù)據(jù)表的設(shè)計(jì) 105.系統(tǒng)功能實(shí)現(xiàn) 135.1程序的類圖 135.1.1板塊Bankuai類圖 135.1.2回復(fù)Huifu類圖 145.1.3帖子Tiezi類圖 155.1.4用戶User類圖 165.2程序的時(shí)序圖 175.2.1板塊模塊時(shí)序圖 175.2.2回復(fù)模塊時(shí)序圖 185.2.3帖子模塊時(shí)序圖 195.2.4用戶模塊時(shí)序圖 195.3系統(tǒng)實(shí)現(xiàn)的主要框架 205.3.1SSH框架 205.3.2hibernate配置文件 205.3.3struts配置文件 215.3.4spring配置文件 215.4系統(tǒng)功能實(shí)現(xiàn)的主要模塊 235.4.1網(wǎng)站首頁 235.4.2用戶注冊頁面 235.4.3管理后臺登陸頁面 255.4.4管理后臺注冊用戶管理頁面 266.系統(tǒng)調(diào)試與測試 286.1軟件測試的目的 286.2軟件測試的任務(wù) 286.3測試環(huán)境 29參考文獻(xiàn) 29山西大學(xué)商務(wù)學(xué)院畢業(yè)論文 基于SSH的居民社區(qū)交流站點(diǎn)的設(shè)計(jì)與實(shí)現(xiàn)PAGE17基于SSH的在居民社區(qū)交流站點(diǎn)的

設(shè)計(jì)與實(shí)現(xiàn)學(xué)生姓名:指導(dǎo)教師:隨著信息時(shí)代的不斷發(fā)展,論壇這個(gè)概念在人們的生活中變得不可或缺的一部分。在論壇里,可以自由發(fā)表自己的觀點(diǎn)和對論壇的主題發(fā)表意見,我們還可以對網(wǎng)友的問題及時(shí)地解決,獲取對自己有用的知識,總之,對人們的生活中占據(jù)了很重要的一部分。本畢業(yè)設(shè)計(jì)的內(nèi)容是設(shè)計(jì)并且實(shí)現(xiàn)一個(gè)基于WEB技術(shù)的BBS論壇,該BBS論壇主要以J2EE作為開發(fā)基礎(chǔ),主要使用了STRUTS2+SPRING+HIBERNATE等多種框架的結(jié)合使用,用ECLIPSE作為開發(fā)工具,以SQLSERVER作為數(shù)據(jù)庫,以MACROMEDIA公司的DREAMWEAVER作為界面美化工具,使用JAVA語言開發(fā),頁面采取JSP動態(tài)頁面開發(fā)技術(shù)。該系統(tǒng)界面簡單、操作方便,容易維護(hù)。關(guān)鍵詞:BBS論壇S.S.H(STRUTS2+SPRING+HIBERNATE)JAVAJSP緒論1.1課題研究的目的隨著人民生活水平的提高,居民社區(qū)逐漸成為了普遍的住房環(huán)境。住戶更希望自己居住在一個(gè)安全、熱情的和諧社區(qū)里,這就對社區(qū)管理工作提出了更高的要求。如何快捷方便地解決住戶與管理部門信息交換,及時(shí)為住戶解決生活中的各種糾紛,成為管理工作的重點(diǎn)。社區(qū)交流站點(diǎn)就是針對這一問題進(jìn)行設(shè)計(jì)實(shí)現(xiàn)的。現(xiàn)在居民社區(qū)管理出現(xiàn)的種種問題,管理部門往往不能及時(shí)得到消息并且在第一時(shí)間為廣大住戶解決,而且在信息傳播、與住戶溝通之間困難重重。針對這一現(xiàn)象,社區(qū)交流站點(diǎn)設(shè)計(jì)的實(shí)現(xiàn)將會建立這一橋梁,溝通住戶與社區(qū)部門,達(dá)到共建和諧社區(qū)的目標(biāo)。1.2課題研究的意義社區(qū)交流站點(diǎn)是傾聽民意、汲取民智的內(nèi)在需要,在這個(gè)足不出戶的網(wǎng)絡(luò)時(shí)代增進(jìn)了鄰里之間的溝通和交流,居民能在這里對社區(qū)的管理提出建議,反應(yīng)社區(qū)不和諧現(xiàn)象。居民積極參與到社區(qū)建設(shè),既可以分享社區(qū)的利益,又能夠承擔(dān)社區(qū)內(nèi)的責(zé)任,從而達(dá)到共建和諧社區(qū)的目標(biāo)。同時(shí)社區(qū)的活動宣傳、通知等管理工作將更加快捷方便。2.系統(tǒng)開發(fā)環(huán)境及技術(shù)簡介2.1系統(tǒng)開發(fā)環(huán)境2.1.1Eclipse在開發(fā)本平臺中所用到的開發(fā)工具就是是知名的java項(xiàng)目開發(fā)工具Eclipse。利用Eclipse,我們可以在數(shù)據(jù)庫和J2EE的開發(fā)、發(fā)布,以及在應(yīng)用程序服務(wù)器的整合當(dāng)中極大地提高系統(tǒng)的工作效率。Eclipse是一個(gè)功能非常豐富的J2EE集成開發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測試和發(fā)布功能,完整支持HTML,Struts,JSP,CSS,Javascript,SQL,Hibernate。在結(jié)構(gòu)上,Eclipse的特征可以被分為7類:J2EE模型,WEB開發(fā)工具,EJB開發(fā)工具,應(yīng)用程序服務(wù)器的連接器,J2EE項(xiàng)目部署服務(wù),數(shù)據(jù)庫服務(wù)。對于以上每一種功能上的類別,在Eclipse中都有相應(yīng)的功能部件,并通過一系列的插件來實(shí)現(xiàn)它們。Eclipse結(jié)構(gòu)上的這種模塊化,可以讓我們在不影響其他模塊的情況下,對任一模塊進(jìn)行單獨(dú)的擴(kuò)展和升級。2.1.2數(shù)據(jù)庫簡介SQLServer是一個(gè)關(guān)系數(shù)據(jù)庫管理系統(tǒng)。它最初是由MicrosoftSybase和Ashton-Tate三家公司共同開發(fā)的,于1988年推出了第一個(gè)OS/2版本。在WindowsNT推出后,Microsoft與Sybase在SQLServer的開發(fā)上就分道揚(yáng)鑣了,Microsoft將SQLServer移植到WindowsNT系統(tǒng)上,專注于開發(fā)推廣SQLServer的WindowsNT版本。Sybase則較專注于SQLServer在UNIX操作系統(tǒng)上的應(yīng)用。2.1.3TomcatTomcat很受廣大程序員的喜歡,因?yàn)樗\(yùn)行時(shí)占用的系統(tǒng)資源小,擴(kuò)展性好,支持負(fù)載平衡與郵件服務(wù)等開發(fā)應(yīng)用系統(tǒng)常用的功能;而且它還在不斷的改進(jìn)和完善中,任何一個(gè)感興趣的程序員都可以更改它或在其中加入新的功能。Tomcat是一個(gè)輕量級應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場合下被普遍使用,是開發(fā)和調(diào)試JSP程序的首選。對于一個(gè)初學(xué)者來說,可以這樣認(rèn)為,當(dāng)在一臺機(jī)器上配置好Apache服務(wù)器,可利用它響應(yīng)對HTML頁面的訪問請求。實(shí)際上Tomcat部分是Apache服務(wù)器的擴(kuò)展,但它是獨(dú)立運(yùn)行的,所以當(dāng)你運(yùn)行tomcat時(shí),它實(shí)際上作為一個(gè)與Apache獨(dú)立的進(jìn)程單獨(dú)運(yùn)行的。這里的訣竅是,當(dāng)配置正確時(shí),Apache為HTML頁面服務(wù),而Tomcat實(shí)際上運(yùn)行JSP頁面和Servlet。另外,Tomcat和IIS、Apache等Web服務(wù)器一樣,具有處理HTML頁面的功能,另外另外它還是一個(gè)Servlet和JSP容器,獨(dú)立的Servlet容器是Tomcat的默認(rèn)模式。2.2系統(tǒng)開發(fā)的思想與技術(shù)2.2.1JSP技術(shù)與MVC模式以及系統(tǒng)的基本框架本系統(tǒng)采用jsp技術(shù),基于MVC模式開發(fā),使用SSH框架(struts2、spring、hibernate)來增加系統(tǒng)的開發(fā)速度。所謂的MVC模式是"Model-View-Controller"的縮寫,中文翻譯為"模式-視圖-控制器"。程序就是用struts2和hibernate這兩個(gè)框架來實(shí)現(xiàn)模型層和控制器這兩層,jsp實(shí)現(xiàn)視圖這一層。一般來說程序就是在數(shù)據(jù)庫和頁面之間起橋梁作用的,jsp頁面請求先到action,再到dao,再回到action,回到j(luò)sp頁面,action主要處理來自頁面的請求,dao主要是和數(shù)據(jù)庫的交互,struts2主要用在action,處理來自頁面的請求,處理完請求后跳轉(zhuǎn)回頁面。Hibernate主要用在dao,包括對數(shù)據(jù)庫的增、刪、改、查的操作,spring控制程序的流程。2.2.2S.S.H框架的優(yōu)點(diǎn)S.S.H框架是J2EE應(yīng)用中struts2+spring+hibernate三大免費(fèi)開源框架的結(jié)合使用,它可以看成工具,也是中間件。他是用來提高我們的開發(fā)效率,提高我們軟件產(chǎn)品的可維護(hù)性、可擴(kuò)展性乃至敏捷性的。他們里面有很多優(yōu)秀的設(shè)計(jì)理念及模式應(yīng)用。比如,struts屬于MVC框架,關(guān)鍵是要了解MVC的概念及大致原理;而hibernate屬于ORM系統(tǒng),屬于持久層的解決方案,同樣需要對ORM的概念及原理有一個(gè)總體的了解。而spring屬于應(yīng)用程序框架,其核心是IOC容器以及AOP,Spring中還集成了很多適用東西,比如對JDBC的封裝、自己的MVC、對動態(tài)語言的簡潔訪問等。它由以下3個(gè)框架構(gòu)成:1.Struts2框架Struts2是Apache組織的一個(gè)開放源碼項(xiàng)目。Struts2是一個(gè)比較好的MVC框架,提供了對開發(fā)MVC系統(tǒng)的底層支持,它采用的主要技術(shù)是Servlet,JSP和Customtaglibrary。其基本構(gòu)成如圖1所示。圖1Struts2框架2.Spring框架Spring的核心是個(gè)輕量級(Lightweight)的容器(Container),它是實(shí)現(xiàn)IoC(InversionofControl)容器、非侵入性(Nointrusive)的框架,并提供AOP(Aspect-orientedprogramming)概念的實(shí)現(xiàn)方式,提供對持久層(Persistence)、事務(wù)(Transaction)的支持,提供MVCWeb框架的實(shí)現(xiàn),并對一些常用的企業(yè)服務(wù)API(ApplicationInterface)提供一致的模型封裝,是一個(gè)全方位的應(yīng)用程序框架(Applicationframework),除此之外,對于現(xiàn)存的各種框架(Struts、JSF、Hibernate等),Spring也提供了與它們相整合的方案。Spring框架由以下7個(gè)部分組成如圖2所示。圖2Spring框架3.Hibernate框架Hibernate是一個(gè)開放源碼的ORM持久層框架。作為優(yōu)秀的持久層框架實(shí)現(xiàn),Hibernate框架提供了強(qiáng)大、高性能的對象到關(guān)系型數(shù)據(jù)庫的持久化服務(wù),開發(fā)人員可以使用面向?qū)ο蟮脑O(shè)計(jì)進(jìn)行持久層開發(fā)。簡單的說,Hibernate只是一個(gè)將持久化類與數(shù)據(jù)庫表相映射的工具,每個(gè)持久化類實(shí)例均對應(yīng)于數(shù)據(jù)庫表中的一個(gè)數(shù)據(jù)行而已。用戶只需直接使用面向?qū)ο蟮姆椒ú僮鞔顺志没悓?shí)例,即可完成對數(shù)據(jù)庫表數(shù)據(jù)的插入、刪除、修改、讀取等操作。Hibernate框架構(gòu)成如圖3所示。圖3Hibernate框架3.系統(tǒng)總體設(shè)計(jì)3.1總體功能模塊本程序主要分系統(tǒng)管理員,板塊管理員,用戶三個(gè)用戶權(quán)限。系統(tǒng)功能圖如圖4所示。圖4系統(tǒng)功能3.2系統(tǒng)管理員功能模塊系統(tǒng)管理員的主要功能板塊管理、注冊用戶管理。系統(tǒng)管理員的功能圖如圖5所示。圖5系統(tǒng)管理員的功能圖3.3用戶功能模塊用戶的主要功能有注冊登錄功能、瀏覽帖子,瀏覽回復(fù)功能、發(fā)帖。發(fā)回復(fù)功能、查看別人的空間、個(gè)人信息的管理、我的帖子管理、我的回復(fù)管理。用戶的功能圖如圖6所示。圖6用戶的功能圖3.4板塊管理員功能模塊板塊管理員的主要功能有帖子合法性管理、回復(fù)合法性管理、精華帖管理、版主推薦管理。板塊管理員的功能圖如圖7所示。圖7板塊管理員功能圖3.5系統(tǒng)業(yè)務(wù)描述本程序主要分系統(tǒng)管理員,板塊管理員,用戶三個(gè)用戶權(quán)限。系統(tǒng)管理員的主要功能板塊管理、注冊用戶管理;用戶的主要功能有注冊登錄功能、瀏覽帖子,瀏覽回復(fù)功能、發(fā)帖。發(fā)回復(fù)功能、查看別人的空間、個(gè)人信息的管理、我的帖子管理、我的回復(fù)管理;板塊管理員的主要功能有帖子合法性管理、回復(fù)合法性管理、精華帖管理、版主推薦管理。系統(tǒng)業(yè)務(wù)用例圖如圖8所示。圖8系統(tǒng)業(yè)務(wù)用例圖 3.6程序流程圖用戶注冊流程圖如圖9所示。圖9用戶注冊流程圖用戶登陸流程圖如圖10所示。圖10用戶登陸流程圖4.系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)4.1系統(tǒng)和數(shù)據(jù)庫的配置系統(tǒng)按通用的B/S(瀏覽器、服務(wù)器)模式進(jìn)行設(shè)計(jì)B/S結(jié)構(gòu)如圖11所示。圖11B/S結(jié)構(gòu)圖數(shù)據(jù)庫在一個(gè)信息管理系統(tǒng)中占有非常重要的地位,數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)的好壞將直接對應(yīng)用系統(tǒng)的效率,以及實(shí)現(xiàn)的效果產(chǎn)生影響。合理的數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)可以提高數(shù)據(jù)存儲的效率,保證數(shù)據(jù)的完整和一致。4.2概念模型設(shè)計(jì)概念模型設(shè)計(jì)的典型方法是用E-R圖方法,即用實(shí)體-聯(lián)系模型表示。E-R方法是用E-R圖來描述顯示世界,E-R圖包含三個(gè)基本成分:實(shí)體、聯(lián)系、屬性。它直觀易懂,能夠比較準(zhǔn)確地反映現(xiàn)實(shí)世界的信息聯(lián)系,從概念上表示一個(gè)數(shù)據(jù)庫的信息組織情況。本系統(tǒng)E-R圖如圖12所示。圖12系統(tǒng)E-R圖4.3數(shù)據(jù)庫邏輯模型板塊表(主鍵、板塊圖片、板塊名稱、添加時(shí)間、是否刪除標(biāo)志、板塊簡介、板塊管理員ID)回復(fù)表(主鍵、回復(fù)內(nèi)容、添加時(shí)間、是否刪除標(biāo)志、關(guān)聯(lián)的帖子ID、關(guān)聯(lián)的用戶ID)帖子表(主鍵、內(nèi)容、添加時(shí)間、是否刪除標(biāo)志、點(diǎn)擊數(shù)、回復(fù)數(shù)、最后回復(fù)時(shí)間、帖子類型、標(biāo)題、是否推薦、板塊ID、用戶ID)用戶表(主鍵、添加時(shí)間、是否刪除標(biāo)志、發(fā)帖數(shù)、回復(fù)數(shù)、簡介、聯(lián)系方式、密碼、用戶角色、頭像、真實(shí)姓名、用戶名)4.4數(shù)據(jù)庫表結(jié)構(gòu)(1)t_bankuai(板塊表)t_bankuai的結(jié)構(gòu)見表1所示。表1t_bankuai(板塊表)名稱類型空默認(rèn)值備注idint(11)noauto_increment主鍵bankuaiimagepathvarchar(255)yes空板塊圖片Bankuaimingvarchar(255)yes空板塊名稱createtimedatetimeyes空添加時(shí)間deletestatusint(11)no0是否刪除標(biāo)志Infovarchar(255)yes空板塊簡介guanliidint(11)yes空板塊管理員ID(2)t_huifu(回復(fù)表)t_huifu的結(jié)構(gòu)見表2所示。表2t_huifu(回復(fù)表)名稱類型空默認(rèn)值備注idint(11)noauto_increment主鍵contenttextyes空回復(fù)內(nèi)容createtimedatetimeyes空添加時(shí)間deletestatusint(11)no0是否刪除標(biāo)志tieziidint(11)yes空關(guān)聯(lián)的帖子IDuseridint(11)yes空關(guān)聯(lián)的用戶ID(3)t_tiezi(帖子表)t_tiezi見表3所示。表3t_tiezi(帖子表)名稱類型空默認(rèn)值備注idint(11)noauto_increment主鍵contenttextyes空內(nèi)容createtimedatetimeyes空添加時(shí)間deletestatusint(11)no0是否刪除標(biāo)志dianjishuint(11)no0點(diǎn)擊數(shù)huifushuint(11)no0回復(fù)數(shù)huifutimedatetimeyes空最后回復(fù)時(shí)間leixingvarchar(255)yes空帖子類型titlevarchar(255)yes空標(biāo)題tuijianvarchar(255)yes空是否推薦bankuaiidint(11)yes空板塊IDuseridint(11)yes空用戶ID(4)t_user(用戶表)t_user的結(jié)構(gòu)見表4所示。表4t_user(用戶表)名稱類型空默認(rèn)值備注idint(11)noauto_increment主鍵createtimedatetimeyes空添加時(shí)間deletestatusint(11)no0是否刪除標(biāo)志fatieshuint(11)no0發(fā)帖數(shù)huifushuint(11)no0回復(fù)數(shù)jianjievarchar(255)yes空簡介lianxifangshivarchar(255)yes空聯(lián)系方式passwordvarchar(255)yes空密碼roleint(11)no0用戶角色touxiangvarchar(255)yes空頭像truenamevarchar(255)yes空真實(shí)姓名useridvarchar(255)yes空用戶名4.5平臺數(shù)據(jù)表的設(shè)計(jì)根據(jù)平臺的需求分析和功能模塊的劃分,所涉及的實(shí)體有板塊、回復(fù)、帖子、用戶。因此系統(tǒng)的定義數(shù)據(jù)庫主要包含4張表:板塊表t_bankuai,回復(fù)表t_huifu,帖子表t_tiezi,用戶表t_user。(1)板塊表t_bankuai表結(jié)構(gòu)圖如圖13所示。圖13板塊表結(jié)構(gòu)圖建表的sql語句為:CREATETABLE`t_bankuai`(`id`int(11)NOTNULLauto_increment,`bankuaiimagePath`varchar(255)defaultNULL,`bankuaiming`varchar(255)defaultNULL,`createtime`datetimedefaultNULL,`deletestatus`int(11)NOTNULL,`info`varchar(255)defaultNULL,`guanliid`int(11)defaultNULL,PRIMARYKEY(`id`),KEY`FKA77B36D61A46439E`(`guanliid`),CONSTRAINT`FKA77B36D61A46439E`FOREIGNKEY(`guanliid`)REFERENCES`t_user`(`id`))ENGINE=InnoDBDEFAULTCHARSET=utf8;(2)回復(fù)表t_huifu表結(jié)構(gòu)圖如圖14所示。圖14回復(fù)表結(jié)構(gòu)圖建表的語句為:CREATETABLE`t_huifu`(`id`int(11)NOTNULLauto_increment,`content`text,`createtime`datetimedefaultNULL,`deletestatus`int(11)NOTNULL,`tieziid`int(11)defaultNULL,`userid`int(11)defaultNULL,PRIMARYKEY(`id`),KEY`FKA05F8F4043D87651`(`userid`),KEY`FKA05F8F40F130A479`(`tieziid`),CONSTRAINT`FKA05F8F40F130A479`FOREIGNKEY(`tieziid`)REFERENCES`t_tiezi`(`id`),CONSTRAINT`FKA05F8F4043D87651`FOREIGNKEY(`userid`)REFERENCES`t_user`(`id`))ENGINE=InnoDBDEFAULTCHARSET=utf8;(3)帖子表t_tiezi表結(jié)構(gòu)圖如圖15所示。圖15帖子表結(jié)構(gòu)圖建表的語句為:CREATETABLE`t_tiezi`(`id`int(11)NOTNULLauto_increment,`content`text,`createtime`datetimedefaultNULL,`deletestatus`int(11)NOTNULL,`dianjishu`int(11)NOTNULL,`huifushu`int(11)NOTNULL,`huifutime`datetimedefaultNULL,`leixing`varchar(255)defaultNULL,`title`varchar(255)defaultNULL,`tuijian`varchar(255)defaultNULL,`bankuaiid`int(11)defaultNULL,`userid`int(11)defaultNULL,PRIMARYKEY(`id`),KEY`FKA103283443D87651`(`userid`),KEY`FKA1032834B9867BBD`(`bankuaiid`),CONSTRAINT`FKA1032834B9867BBD`FOREIGNKEY(`bankuaiid`)REFERENCES`t_bankuai`(`id`),CONSTRAINT`FKA103283443D87651`FOREIGNKEY(`userid`)REFERENCES`t_user`(`id`))ENGINE=InnoDBDEFAULTCHARSET=utf8;(4)用戶表t_user表結(jié)構(gòu)圖如圖16所示。圖16用戶表結(jié)構(gòu)圖建表的SQL語句為:CREATETABLE`t_user`(`id`int(11)NOTNULLauto_increment,`createtime`datetimedefaultNULL,`deletestatus`int(11)NOTNULL,`fatieshu`int(11)NOTNULL,`huifushu`int(11)NOTNULL,`jianjie`varchar(255)defaultNULL,`lianxifangshi`varchar(255)defaultNULL,`password`varchar(255)defaultNULL,`role`int(11)NOTNULL,`touxiang`varchar(255)defaultNULL,`truename`varchar(255)defaultNULL,`username`varchar(255)defaultNULL,PRIMARYKEY(`id`))ENGINE=InnoDBAUTO_INCREMENT=2DEFAULTCHARSET=utf8;5.系統(tǒng)功能實(shí)現(xiàn)5.1程序的類圖5.1.1板塊Bankuai類圖板塊Bankuai類圖如圖17所示。圖17板塊類圖對應(yīng)的程序代碼:/***板塊*/@Entity@Table(name="t_bankuai")publicclassBankuai{ @Id @GeneratedValue privateintid; privateintdeletestatus;//表示是否刪除的狀態(tài),0表示未刪除,1表示刪除 privateStringbankuaiming;//版塊名稱 privateStringinfo;//簡單介紹該板塊 @ManyToOne @JoinColumn(name="guanliid") privateUserguanli;//版塊管理者 privateDatecreatetime; privateStringbankuaiimagePath;5.1.2回復(fù)Huifu類圖回復(fù)Huifu類圖如圖18所示。圖18回復(fù)類圖對應(yīng)的程序代碼:/***回復(fù)**/@Entity@Table(name="t_huifu")publicclassHuifu{ @Id @GeneratedValue privateintid; privateintdeletestatus;//表示是否刪除的狀態(tài),0表示未刪除,1表示刪除 @Column(name="content",columnDefinition="TEXT") privateStringcontent; privateDatecreatetime; @ManyToOne @JoinColumn(name="userid") privateUseruser; @ManyToOne @JoinColumn(name="tieziid") privateTiezitiezi;5.1.3帖子Tiezi類圖帖子Tiezi類圖如圖19所示。圖19帖子類圖對應(yīng)的程序代碼:/***帖子**/@Entity@Table(name="t_tiezi")publicclassTiezi{ @Id @GeneratedValue privateintid; privateintdeletestatus;//表示是否刪除的狀態(tài),0表示未刪除,1表示刪除 privateStringtitle; @Column(name="content",columnDefinition="TEXT") privateStringcontent; @ManyToOne @JoinColumn(name="userid") privateUseruser; privateDatecreatetime; @ManyToOne @JoinColumn(name="bankuaiid") privateBankuaibankuai; privateintdianjishu;//查看數(shù) privateinthuifushu;//回復(fù)數(shù) privateStringleixing;//帖子精華求助活動 privateDatehuifutime;//最后回復(fù) privateStringtuijian;//版主推薦5.1.4用戶User類圖用戶User類圖如圖20所示。圖20用戶類圖對應(yīng)的代碼://用戶@Entity@Table(name="t_User")publicclassUser{ @Id @GeneratedValue privateintid; privateintdeletestatus;//表示是否刪除的狀態(tài),0表示未刪除,1表示刪除 privateStringusername; privateStringpassword; privateDatecreatetime; privateintrole;//1表示系統(tǒng)管理員,3表示普通用戶 privateStringtruename; privateStringlianxifangshi;//聯(lián)系方式 privateintfatieshu;//發(fā)帖數(shù) privateinthuifushu;//回復(fù)數(shù) privateStringtouxiang;//頭像 privateStringjianjie;//簡介5.2程序的時(shí)序圖5.2.1板塊模塊時(shí)序圖板塊模塊時(shí)序圖如圖21所示。圖21板塊模塊時(shí)序圖5.2.2回復(fù)模塊時(shí)序圖回復(fù)模塊時(shí)序圖如圖22所示。圖22回復(fù)模塊時(shí)序圖5.2.3帖子模塊時(shí)序圖帖子模塊時(shí)序圖如圖23所示。圖23帖子模塊時(shí)序圖5.2.4用戶模塊時(shí)序圖用戶模塊時(shí)序圖如圖24所示。圖24用戶模塊時(shí)序圖5.3系統(tǒng)實(shí)現(xiàn)的主要框架5.3.1SSH框架SSH框架就是struts2,spring,hibernate的簡稱,運(yùn)用3個(gè)框架的集成協(xié)作使用,可以有效的提高代碼編寫的效率,從而有效的降低程序開發(fā)的周期。5.3.2hibernate配置文件<hibernate-configuration> <session-factory> <!--Databaseconnectionsettings--> <propertyname="proxool.pool_alias">DBPool</property> <propertyname="proxool.xml">proxool.xml</property> <propertyname="vider_class"> org.hibernate.connection.ProxoolConnectionProvider </property> <!--EchoallexecutedSQLtostdout--> <propertyname="show_sql">true</property><propertyname="format_sql">true</property> <propertyname="dialect">org.hibernate.dialect.MySQLDialect</property> <!--EnableHibernate'sautomaticsessioncontextmanagement--><propertyname="current_session_context_class">thread</property> <propertyname="hibernate.hbm2ddl.auto">update</property> <mappingclass="bbs.model.User"/> <mappingclass="bbs.model.Bankuai"/> <mappingclass="bbs.model.Tiezi"/> <mappingclass="bbs.model.Huifu"/> </session-factory></hibernate-configuration>這是Hibernate的配置文件,在該文件中<propertyname="proxool.xml">proxool.xml</property>首先加載了連接池的一個(gè)配置,就是加載了數(shù)據(jù)庫的連接信息<propertyname="show_sql">true</property><propertyname="format_sql">true</property>表示控制臺打印SQL語句,并格式化SQL語句<propertyname="dialect">org.hibernate.dialect.SQLDialect</property>表示當(dāng)前數(shù)據(jù)庫的語言是SQL <mappingclass="bbs.model.User"/> <mappingclass="bbs.model.Bankuai"/> <mappingclass="bbs.model.Tiezi"/> <mappingclass="bbs.model.Huifu"/>都表示當(dāng)前數(shù)據(jù)庫建立起來的表和類之間的映射關(guān)系,比如<mappingclass="model.User"/>表示User類和t_user表之間的建立起來的對應(yīng)關(guān)系,其他也都類似。5.3.3struts配置文件<struts> <constantname="struts.objectFactory"value="spring"/> <constantname="struts.i18n.encoding"value="UTF-8"/> <packagename="index"namespace="/"extends="struts-default"> <actionname="index"method="index"class="indexAction"><resultname="success">index.jsp</result></action> <actionname="method"class="manageAction"> <resulttype="dispatcher">${url}</result> <resultname="redirect"type="redirect">${url}</result> </action> <actionname="indexmethod"class="indexAction"> <resulttype="dispatcher">${url}</result> <resultname="redirect"type="redirect">${url}</result> </action></package></struts>這是struts的配置文件,該文件的作用主要起到來自JSP的請求的跳轉(zhuǎn)分配的作用.該struts配置文件是個(gè)總的配置文件。5.3.4spring配置文件Spring在本項(xiàng)目中主要用到了IOC的功能,就是把對象實(shí)例化<!--daos--><beanid="userDao"class="bbs.dao.impl.UserDaoImpl"> <propertyname="sessionFactory"><refbean="sessionFactory"/></property> </bean> <beanid="bankuaiDao"class="bbs.dao.impl.BankuaiDaoImpl"> <propertyname="sessionFactory"><refbean="sessionFactory"/></property> </bean> <beanid="tieziDao"class="bbs.dao.impl.TieziDaoImpl"> <propertyname="sessionFactory"><refbean="sessionFactory"/></property> </bean> <beanid="huifuDao"class="bbs.dao.impl.HuifuDaoImpl"> <propertyname="sessionFactory"><refbean="sessionFactory"/></property> </bean> 本段代碼是把DAO實(shí)例化的代碼,通過spring的IOC模式 <beanid="manageAction"class="bbs.action.ManageAction"scope="prototype"> <propertyname="userDao"><refbean="userDao"/></property> <propertyname="bankuaiDao"><refbean="bankuaiDao"/></property> <propertyname="tieziDao"><refbean="tieziDao"/></property> <propertyname="huifuDao"><refbean="huifuDao"/></property> </bean>本段代碼是把ManageAction實(shí)例化的代碼,原理也是spring的IOC模式。<beanid="indexAction"class="bbs.action.IndexAction"scope="prototype"> <propertyname="userDao"><refbean="userDao"/></property> <propertyname="bankuaiDao"><refbean="bankuaiDao"/></property> <propertyname="tieziDao"><refbean="tieziDao"/></property> <propertyname="huifuDao"><refbean="huifuDao"/></property> </bean>本段代碼是把IndexAction實(shí)例化的代碼,原理也是spring的IOC模式。5.4系統(tǒng)功能實(shí)現(xiàn)的主要模塊5.4.1網(wǎng)站首頁網(wǎng)站首頁如圖25所示。圖25網(wǎng)站首頁圖登陸代碼://首頁入口 publicStringindex()throwsException{ HttpServletRequestrequest=ServletActionContext.getRequest(); Util.init(request); List<Bankuai>list=bankuaiDao.selectBeanList(0,9999,"wheredeletestatus=0"); request.setAttribute("list",list); return"success"; }本段代碼是主頁面代碼,通過bankuaiDao.selectBeanList調(diào)用板塊的信息,同時(shí)定義return"success";在通過struts.xml配置的文件返回到index.jsp頁面,同時(shí)在改jsp頁面定義了各種功能的操作。5.4.2用戶注冊頁面用戶注冊頁面如圖26所示圖26用戶注冊圖代碼如下://用戶注冊操作 publicvoidregister2()throwsException{ HttpServletRequestrequest=ServletActionContext.getRequest(); HttpServletResponseresponse=ServletActionContext.getResponse(); Useruser=newUser(); user.setUsername(request.getParameter("username")); user.setPassword(request.getParameter("password")); user.setTruename(request.getParameter("truename")); user.setLianxifangshi(request.getParameter("lianxifangshi")); user.setCreatetime(newDate()); user.setRole(3); user.setTouxiang("touxiang.jpg"); user.setCreatetime(newDate()); Useru=userDao.selectBean("whereusername='"+user.getUsername()+"'"); if(u==null){ userDao.insertBean(user); response.setCharacterEncoding("gbk");response.setContentType("text/html;charset=gbk"); response .getWriter() .print( "<scriptlanguage=javascript>alert('注冊成功,您的用戶名是"+user.getUsername()+",請妥善保管');window.location.href='login.jsp';</script>"); }else{ response.setCharacterEncoding("gbk");response.setContentType("text/html;charset=gbk"); response .getWriter() .print( "<scriptlanguage=javascript>alert('注冊失?。≡撚脩裘呀?jīng)存在!');window.location.href='register.jsp';</script>"); } }本段代碼是程序的注冊代碼,首先從獲取從頁面獲取注冊的信息,同時(shí)新建一個(gè)User對象,把從頁面獲取的信息都寫在USER對象里面。同時(shí)在插入到數(shù)據(jù)庫之前先調(diào)用userDao.selectBean("whereusername='"+user.getUsername()+"'");方法,驗(yàn)證下該用戶名在數(shù)據(jù)庫中是否存在,如果不存在,則調(diào)用userDao.insertBean(bean);方法,把該條記錄寫入數(shù)據(jù)庫,如果該條記錄存在,則返回到注冊頁面,同時(shí)提醒用戶該用戶名已經(jīng)存在,請重新注冊!。5.4.3管理后臺登陸頁面管理后臺登陸如圖27所示。圖27管理后臺登陸圖代碼如下://登入請求 publicStringlogin()throwsIOException{ HttpServletRequestrequest=ServletActionContext.getRequest(); Stringusername=request.getParameter("username"); Stringpassword=request.getParameter("password"); Useruser=userDao.selectBean("whereusername='"+username +"'andpassword='"+password+"'androle="+1+"anddeletestatus=0"); if(user!=null){ HttpSessionsession=request.getSession(); session.setAttribute("manage",user); this.setUrl("manage/index.jsp"); return"redirect"; }else{ HttpServletResponseresponse=ServletActionContext.getResponse(); response.setCharacterEncoding("gbk"); response.setContentType("text/html;charset=gbk"); response .getWriter() .print( "<scriptlanguage=javascript>alert('用戶名或者密碼錯(cuò)誤');window.location.href='login.jsp';</script>"); } returnnull;本段代碼是程序的登陸代碼,首先從獲取從頁面輸入的用戶名和密碼,然后調(diào)用userDao.selectBean方法,從數(shù)據(jù)庫里取出該條記錄進(jìn)行判斷,如果該條記錄存在,則說明用戶登陸成功,同時(shí)把用戶信息存在session里面方便調(diào)用,如果記錄為空,則跳轉(zhuǎn)到登陸頁面,同時(shí)提醒用戶錯(cuò)誤信息。5.4.4管理后臺注冊用戶管理頁面管理后臺注冊用戶管理頁面如圖28所示。圖28管理后臺注冊用戶管理圖代碼如下://注冊用戶列表 publicStringuserlist(){ HttpServletRequestrequest=ServletActionContext.getRequest(); Stringusername=request.getParameter("username"); StringBuffersb=newStringBuffer(); sb.append("where"); if(username!=null&&!"".equals(username)){ sb.append("usernamelike'%"+username+"%'"); sb.append("and"); request.setAttribute("username",username); } sb.append("role!=1orderbyiddesc"); Stringwhere=sb.toString(); intcurrentpage=1; intpagesize=10; if(request.getParameter("pagenum")!=null){ currentpage=Integer.parseInt(request.getParameter("pagenum")); } inttotal=userDao.selectBeanCount(where.replaceAll("orderbyiddesc","")); request.setAttribute("list",userDao.selectBeanList((current1) *pagesize,pagesize,where)); request.setAttribute("pagerinfo",P

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論