




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、XXXXXXXXX學(xué)院計(jì)算機(jī)工程技術(shù)學(xué)院(軟件學(xué)院)畢業(yè)設(shè)計(jì)(論文)題目: 大蝦網(wǎng)知識(shí)互動(dòng)平臺(tái) 專業(yè): 軟件技術(shù) 班級(jí): 學(xué)生姓名: 學(xué)號(hào): 指導(dǎo)教師姓名: 職稱: 2021年 12 月廣東科學(xué)技術(shù)職業(yè)學(xué)院計(jì)算機(jī)工程技術(shù)學(xué)院畢業(yè)設(shè)計(jì)(論文)開題報(bào)告填表日期: 2021 年 11 月 08 日 題目 大蝦網(wǎng)知識(shí)互動(dòng)平臺(tái)學(xué)生姓名XXX學(xué)號(hào)42專業(yè)軟件技術(shù)班級(jí)XXX)指導(dǎo)教師XXX職稱助教 課題小組成員選題目的及意義 大蝦網(wǎng)是通過提問與答復(fù)的方式進(jìn)行交流的平臺(tái),用戶可以根據(jù)自身的需求,有針對(duì)性地提出問題;為用戶創(chuàng)造一個(gè)會(huì)聚無數(shù)人經(jīng)驗(yàn)、智慧的互動(dòng)式 知識(shí)問答分享平臺(tái).擬完成的任務(wù)及指標(biāo)短消息收發(fā)模塊:
2、用戶可能通過此功能給其他用戶發(fā)送類似email的短消息,方便用戶之間的相互通訊。收藏夾模塊:用戶可以通過此模塊收藏自己喜歡的文章網(wǎng)址,方便用戶收藏自己喜歡的內(nèi)容或博客等通訊錄模塊:用戶可以通過此功能添加通訊錄,方便查找親人、朋友、同學(xué)等的聯(lián)系方式。記事本模塊:用戶可以通過此模塊寫自己想寫的人和事。問答模塊:用戶可以通過此模塊提出自己在生活/學(xué)習(xí)/工作方面的疑問,或答復(fù)別人的疑問.答案被采納后可以獲取相應(yīng)懸賞積分.前臺(tái)模塊:顯示熱點(diǎn)問題,顯示未解決問題,并對(duì)未解決問題按照不同的字段排序.顯示用戶積分排行.提供問題搜索以及按分類顯示功能.創(chuàng)新思路、手段及方法 本站可對(duì)問題實(shí)現(xiàn)全文檢索功能,搜索關(guān)鍵
3、字高亮顯示,實(shí)現(xiàn)方法:Luncene +Compass。 空間樣式選擇:通過切換css樣式來改變用戶空間的風(fēng)格。 異步上傳用戶頭像:結(jié)合jquery類庫(kù)實(shí)現(xiàn)ajax異步上傳圖片 Url重寫:使用url重寫實(shí)例虛擬靜態(tài)頁(yè)面,方便被搜索引擎識(shí)別. 搜索自動(dòng)補(bǔ)全:使用ajax實(shí)現(xiàn)自動(dòng)補(bǔ)全,方便用戶搜索想要的內(nèi)容.審核意見指導(dǎo)教師簽章: 年 月 日 指導(dǎo)教師評(píng)語(yǔ):指導(dǎo)教師評(píng)分:指導(dǎo)教師簽名: 年 月 日辯論委員會(huì)對(duì)畢業(yè)設(shè)計(jì)論文的評(píng)語(yǔ)和成績(jī)?cè)u(píng)定決議: 辯論委員會(huì)評(píng)分: 辯論委員會(huì): 簽章 主任: 年 月 日院長(zhǎng)評(píng)分決議: 院長(zhǎng): 簽章年 月 日摘 要當(dāng)今知識(shí)內(nèi)容最豐富的地方不是圖書館,也不是書城。不用說
4、,當(dāng)今知識(shí)內(nèi)容最豐富便是互聯(lián)網(wǎng).通過互聯(lián)網(wǎng)我們可以查看別人發(fā)布的文章,還可以發(fā)布自己的文章與他人共享.本系統(tǒng)并不是給大家發(fā)布文章用的,而是提供應(yīng)大家一個(gè)知識(shí)互動(dòng)平臺(tái).在本系統(tǒng),大家可以通過提出自己在學(xué)習(xí)上遇到的問題,發(fā)布到本平臺(tái),其他用戶可以查看你發(fā)布的問題,并答復(fù)你的問題.這樣就到達(dá)了知識(shí)共享的作用,讓你的問題能夠得到很好的解決.本大蝦網(wǎng)知識(shí)互動(dòng)平臺(tái)的界面主要是采用xHtml+css設(shè)計(jì)技術(shù),頁(yè)面語(yǔ)言采用JSP技術(shù)、Javascript腳本語(yǔ)言、HTML靜態(tài)語(yǔ)言、后臺(tái)采用基于struts1.x+Spring2.5+JPA1.0框架實(shí)現(xiàn),數(shù)據(jù)庫(kù)采用MySQL5.x.本論文首先對(duì)該系統(tǒng)做一個(gè)需求
5、分析,其次是網(wǎng)站總體功能的設(shè)計(jì),分別通過用例圖分析管理員與普通用戶的主要功能。第三,主要是根據(jù)網(wǎng)站的需求做詳細(xì)的系統(tǒng)設(shè)計(jì),分別是系統(tǒng)實(shí)體模型設(shè)計(jì)、系統(tǒng)架構(gòu)設(shè)計(jì)以及對(duì)系統(tǒng)順序圖分析.第四,主要對(duì)使用到的技術(shù)作一個(gè)簡(jiǎn)單的介紹.局部使用到的技術(shù)有:javaMail的應(yīng)用、dbcp連接池的應(yīng)用、利用jquery實(shí)現(xiàn)Ajax異步調(diào)用、使用urlrewrite實(shí)現(xiàn)url重寫、使用dom4j操作xml文件、使用freemark生成靜態(tài)頁(yè)面.最后對(duì)系統(tǒng)開發(fā)環(huán)境和運(yùn)行環(huán)境作了一個(gè)介紹.本系統(tǒng)平臺(tái)包含的主要應(yīng)用有:1、發(fā)送站內(nèi)短消息,用戶可以通過此功能給其他用戶發(fā)送類似email的短消息,方便用戶之間的相互通訊;
6、2、收藏夾模塊,用戶可以通過此模塊收藏自己喜歡的文章網(wǎng)址,方便用戶收藏自己喜歡的內(nèi)容或博客等;3、通訊錄模塊,用戶可以通過此功能添加通訊錄,方便查找親人、朋友、同學(xué)等的聯(lián)系方式;記事本模塊;4、記事本模塊,用戶可以通過此模塊寫自己想寫的人和事;5、問答模塊,用戶可以通過此模塊提出自己在生活/學(xué)習(xí)/工作方面的疑問,或答復(fù)別人的疑問.答案被采納后可以獲取相應(yīng)懸賞積分;本系統(tǒng)平臺(tái)的界面比擬簡(jiǎn)單明快,主題突出。 關(guān)鍵詞:struts mvc jpa spring 互動(dòng) AbstractKnowledge content of todays richest place is not a library,
7、 nor is it Bookstore. Needless to say, the most abundant is the knowledge content of todays Internet. Through the Internet we can see someone else publish the article, you can also publish your own articles to share with others. This system is not for everyone to use published articles, but provides
8、 us with a knowledge of interactive platform. In this system, we can put forward their own learning problems, release of this platform, other users can view your published questions and answer your questions. This has reached the role of knowledge-sharing, so that Your question can be a good solutio
9、n.In this paper, the first to do a needs analysis of the system, followed by the general function of site design, respectively, through the use case diagram analysis of the administrator and general users main functions. Third, mainly based on the needs of Web site to do a detailed system design, na
10、mely, physical model of the system design, system architecture design and analysis of the system sequence diagram. Fourth, the main use of the technology to make a brief introduction. Finally, the system development environment and runtime environment was an introduction.The system platform consists
11、 of the main applications are: 1, sending station short message, the user can through this feature to other users to send short messages similar to email, user-friendly inter-communication; 2, favorites, modules, the user can through this Collection of articles you like the module web site, user-fri
12、endly collection your favorite content or blog, etc.; 3, contacts module, users can add contacts through this function to facilitate the search for relatives, friends, classmates and other contact information; notebook module; 4, Notepad module, users can write their own wish to write this module th
13、e people and things; 5, quiz modules, this module users can make their own life / study / work in question, or answer someone elses questions. The answer is After the adoption of a corresponding reward points; this platform interface is relatively simple crisp, themes highlighted. Keyword: struts mv
14、c jpa spring 目錄 TOC o 1-3 h z u HYPERLINK l _Toc249950293 第一章 引 言 PAGEREF _Toc249950293 h 1 HYPERLINK l _Toc249950294 第二章 網(wǎng)站系統(tǒng)需求分析 PAGEREF _Toc249950294 h 2 HYPERLINK l _Toc249950295 2.1 系統(tǒng)設(shè)計(jì)目標(biāo) PAGEREF _Toc249950295 h 2 HYPERLINK l _Toc249950296 2.2 系統(tǒng)可行性分析 PAGEREF _Toc249950296 h 2 HYPERLINK l _Toc
15、249950297 網(wǎng)站系統(tǒng)的設(shè)計(jì)特點(diǎn) PAGEREF _Toc249950297 h 3 HYPERLINK l _Toc249950298 系統(tǒng)設(shè)計(jì)總體規(guī)劃 PAGEREF _Toc249950298 h 3 HYPERLINK l _Toc249950299 第三章 網(wǎng)站總體功能設(shè)計(jì) PAGEREF _Toc249950299 h 4 HYPERLINK l _Toc249950300 3.1 普通用戶功能設(shè)計(jì) PAGEREF _Toc249950300 h 4 HYPERLINK l _Toc249950301 3.2 管理員功能設(shè)計(jì) PAGEREF _Toc249950301 h 5
16、 HYPERLINK l _Toc249950302 第四章 網(wǎng)站系統(tǒng)詳細(xì)設(shè)計(jì) PAGEREF _Toc249950302 h 6 HYPERLINK l _Toc249950303 4.1 系統(tǒng)實(shí)體模型設(shè)計(jì) PAGEREF _Toc249950303 h 6 HYPERLINK l _Toc249950304 4.1.1 用戶與用戶詳細(xì)、用戶空間、用戶積分等級(jí)、角色、空間樣式實(shí)體關(guān)系設(shè)計(jì) PAGEREF _Toc249950304 h 6 HYPERLINK l _Toc249950305 4.1.2 用戶與收藏夾實(shí)體關(guān)系設(shè)計(jì) PAGEREF _Toc249950305 h 7 HYPERL
17、INK l _Toc249950306 4.1.3 用戶與通訊錄實(shí)體關(guān)系設(shè)計(jì) PAGEREF _Toc249950306 h 8 HYPERLINK l _Toc249950307 4.1.4 用戶與記事本實(shí)體關(guān)系設(shè)計(jì) PAGEREF _Toc249950307 h 8 HYPERLINK l _Toc249950308 4.1.5 用戶與問題、答案的實(shí)體關(guān)設(shè)計(jì) PAGEREF _Toc249950308 h 9 HYPERLINK l _Toc249950309 4.2 系統(tǒng)架構(gòu)設(shè)計(jì) PAGEREF _Toc249950309 h 10 HYPERLINK l _Toc249950310 根
18、本架構(gòu)的設(shè)計(jì) PAGEREF _Toc249950310 h 10 HYPERLINK l _Toc249950311 4.2.2 面向接口設(shè)計(jì) PAGEREF _Toc249950311 h 11 HYPERLINK l _Toc249950312 4.3 系統(tǒng)局部順序圖分析 PAGEREF _Toc249950312 h 12 HYPERLINK l _Toc249950313 4.3.1 用戶注冊(cè)順序圖 PAGEREF _Toc249950313 h 12 HYPERLINK l _Toc249950314 4.3.2 用戶登陸順序圖 PAGEREF _Toc249950314 h 13
19、 HYPERLINK l _Toc249950315 4.3.3 添加聯(lián)系人順序圖 PAGEREF _Toc249950315 h 14 HYPERLINK l _Toc249950316 第五章 使用技術(shù)介紹 PAGEREF _Toc249950316 h 15 HYPERLINK l _Toc249950317 5.1 JavaMail的應(yīng)用 PAGEREF _Toc249950317 h 15 HYPERLINK l _Toc249950318 使用dbcp連接池優(yōu)化性能 PAGEREF _Toc249950318 h 15 HYPERLINK l _Toc249950319 利用jqu
20、ery實(shí)現(xiàn)Ajax異步調(diào)用 PAGEREF _Toc249950319 h 16 HYPERLINK l _Toc249950320 5.4 使用urlrewrite實(shí)現(xiàn)url重寫 PAGEREF _Toc249950320 h 17 HYPERLINK l _Toc249950321 5.5 使用dom4j操作xml文件 PAGEREF _Toc249950321 h 17 HYPERLINK l _Toc249950322 5.6 全文檢索技術(shù)之compass+luncene的整合 PAGEREF _Toc249950322 h 19 HYPERLINK l _Toc249950323 5
21、.7 使用freemark生成靜態(tài)頁(yè)面 PAGEREF _Toc249950323 h 22 HYPERLINK l _Toc249950324 第六章 系統(tǒng)非功能概述 PAGEREF _Toc249950324 h 24 HYPERLINK l _Toc249950325 6.1 系統(tǒng)開發(fā)環(huán)境介紹 PAGEREF _Toc249950325 h 24 HYPERLINK l _Toc249950326 介紹 PAGEREF _Toc249950326 h 24 HYPERLINK l _Toc249950327 servlet簡(jiǎn)介 PAGEREF _Toc249950327 h 25 HYP
22、ERLINK l _Toc249950328 簡(jiǎn)介 PAGEREF _Toc249950328 h 27 HYPERLINK l _Toc249950329 JAP簡(jiǎn)介 PAGEREF _Toc249950329 h 28 HYPERLINK l _Toc249950330 Spring簡(jiǎn)介 PAGEREF _Toc249950330 h 29 HYPERLINK l _Toc249950331 6.2 系統(tǒng)運(yùn)行環(huán)境 PAGEREF _Toc249950331 h 30 HYPERLINK l _Toc249950332 第七章 總結(jié) PAGEREF _Toc249950332 h 31 HY
23、PERLINK l _Toc249950333 參考文獻(xiàn) PAGEREF _Toc249950333 h 33 HYPERLINK l _Toc249950334 局部界面預(yù)覽 PAGEREF _Toc249950334 h A引 言隨著計(jì)算機(jī)技術(shù)的飛速開展,信息時(shí)代的到來,信息改變了我們這個(gè)社會(huì)。各類行業(yè)在日常經(jīng)營(yíng)管理各個(gè)方面也在悄悄地走向標(biāo)準(zhǔn)化和網(wǎng)絡(luò)化。管理的信息化程度表達(dá)在將計(jì)算機(jī)及網(wǎng)絡(luò)與信息技術(shù)應(yīng)用于經(jīng)營(yíng)與管理,以現(xiàn)代化工具代替?zhèn)鹘y(tǒng)手工作業(yè)。無疑,使用網(wǎng)絡(luò)信息化管理使管理更先進(jìn)、更高效、更科學(xué),信息交流更迅速. 作為程序員的我們,我們每一天的工作都離不開網(wǎng)絡(luò).由于計(jì)算機(jī)技術(shù)開展迅速,我
24、們程序員也要跟上其步伐,才不會(huì)落后.在工作期間,我們每天都要抽一定的時(shí)間來學(xué)習(xí)新的技術(shù)和穩(wěn)固根底知識(shí),我們可能會(huì)經(jīng)常通過書籍來封裝自己.但是一個(gè)新的技術(shù)出現(xiàn),很難在短時(shí)間內(nèi)就有比擬好的書籍出版.因此我們要通過閱讀相關(guān)文檔以及通過百度或google搜索相關(guān)的文章來學(xué)習(xí).但還可以通過提問題的方式來獲取新的知識(shí),我遇到的問題前面可能已經(jīng)有人遇到過,所以在提問題之前建議先搜索一下是否能夠找到你要的答案,如果搜不到,那就直接提出你要問的問題,假設(shè)你的問題有個(gè)答復(fù)了,系統(tǒng)就會(huì)根據(jù)你注冊(cè)的郵件地址發(fā)送一封提醒信息給您,讓你能及時(shí)獲取到解決問題的方法,最后根據(jù)用戶的答復(fù)選出最正確解決問題的方案。本平臺(tái)就提供此
25、功能. 本系統(tǒng)提供了發(fā)送站內(nèi)短消息功能、收藏自己喜歡的文章網(wǎng)址功能、添加通訊錄功能、寫記事本功能、提出自己在生活/學(xué)習(xí)/工作方面的問題,或答復(fù)別人的問題,本系統(tǒng)主要是提供應(yīng)用戶一個(gè)知識(shí)互動(dòng)平臺(tái).旨在讓用戶學(xué)得愉快、學(xué)得輕松、學(xué)得有用,分享知識(shí),分享快樂;前臺(tái)主要實(shí)現(xiàn)用戶的登錄,用戶注冊(cè);顯示熱點(diǎn)問題的列表;顯示最新未解決問題,并且實(shí)現(xiàn)能按不同的字段排序,如按時(shí)間、答復(fù)次數(shù)、懸賞分降序或升序以及按分類顯示問題列表,方便用戶快速定位到自己感興趣的內(nèi)容,增強(qiáng)了知識(shí)的可讀性. 本系統(tǒng)的總體架構(gòu)采用MVC設(shè)計(jì)模式.module代表數(shù)據(jù)、view代表視圖、controller代表控制器,控制器接收和處理請(qǐng)
26、求,產(chǎn)生數(shù)據(jù),然后選擇視圖顯示數(shù)據(jù)。MVC的好處在于將處理業(yè)務(wù)的控制邏輯代碼與顯示視圖的代碼進(jìn)行了別離,便于維護(hù). 第二章 網(wǎng)站系統(tǒng)需求分析2.1 系統(tǒng)設(shè)計(jì)目標(biāo) 本平臺(tái)利用典型的struts1.x+spring2.5+JPA1.0+jsp的MVC架構(gòu)實(shí)現(xiàn)的,進(jìn)行系統(tǒng)分析,為將來進(jìn)一步的實(shí)施打下一個(gè)堅(jiān)實(shí)的技術(shù)根底。如果本平臺(tái)開發(fā)得完善,將可投入到實(shí)際使用當(dāng)中. 此系統(tǒng)分為前臺(tái)數(shù)據(jù)展示界面系統(tǒng)和用戶后臺(tái)管理系統(tǒng)以及管理員后臺(tái)系統(tǒng): 前臺(tái)主要實(shí)現(xiàn)用戶的登錄,用戶注冊(cè);顯示熱點(diǎn)問題的列表;顯示最新未解決問題,并且實(shí)現(xiàn)能按不同的字段排序,如按時(shí)間、答復(fù)次數(shù)、懸賞分降序或升序以及按分類顯示問題列表。顯示用
27、戶積分排行榜;提供搜問題功能;提供答復(fù)以下問題功能;如果用戶忘記了自己的登陸密碼,用戶還可以找回密碼功能,通過輸入你注冊(cè)的用戶名,系統(tǒng)會(huì)發(fā)送一封修改密碼的郵件到你注冊(cè)的郵箱. 用戶后臺(tái)管理主要是實(shí)現(xiàn)了管理記事本、管理收藏夾、管理通訊錄、管理問答、收發(fā)站內(nèi)短消息;修改用戶個(gè)人信息、修改用戶登陸密碼以及修改用戶注冊(cè)郵箱;查看自己提出的問題以及查看答復(fù)別人的問題. 管理員后臺(tái)系統(tǒng)主要實(shí)現(xiàn)查看注冊(cè)用戶列表,并對(duì)用戶有啟用或禁用的操作;查看問題列表,并對(duì)問題有翻開或關(guān)閉的操作;查看問題目錄,并有添加新的目錄以及修改目錄的操作;管理員同樣可以修改自己的登錄密碼.2.2 系統(tǒng)可行性分析可行性研究是為了弄清楚
28、系統(tǒng)開發(fā)的工程是不是可以實(shí)現(xiàn)和值得進(jìn)行研究的過程,實(shí)際上是一次大大簡(jiǎn)化系統(tǒng)分析和系統(tǒng)設(shè)計(jì)的過程,所以,進(jìn)行可執(zhí)行性的分析是非常必要的,也是很重要的,經(jīng)過最初的設(shè)計(jì)目標(biāo)和進(jìn)行的市場(chǎng)調(diào)查得出以下七點(diǎn)的可行性分析:1.完整性 每一項(xiàng)需求都必須將要實(shí)現(xiàn)的功能描述清楚2.正確性 每一項(xiàng)需求都必須準(zhǔn)確的陳述其要開發(fā)的功能3.可行性 每一項(xiàng)需求都必須在系統(tǒng)和環(huán)境的權(quán)能和限制范圍內(nèi)可以實(shí)施的4必要性 要使每項(xiàng)需求都能回溯至某項(xiàng)客戶的輸入5劃分優(yōu)先級(jí) 給每項(xiàng)需求分配一個(gè)實(shí)施優(yōu)先級(jí)指明它在特定產(chǎn)品中所占的分量6無二義性 對(duì)所有需求說明的讀者都只能有一個(gè)明確地解釋防止二義性的的有效方法包括對(duì)去需求文檔的正確正規(guī)審查
29、,編寫測(cè)試用例,開發(fā)原型等。7科驗(yàn)證性 檢查每項(xiàng)需求是否能通過設(shè)計(jì)測(cè)試用例或其他的驗(yàn)證方法如演示,檢測(cè)。 通過以上的可行性分析,我們將采用java+jsp+struts+spring+jpa結(jié)合的技術(shù),運(yùn)用MySQL數(shù)據(jù)庫(kù)對(duì)網(wǎng)站系統(tǒng)進(jìn)行建設(shè)。 在平時(shí),你只能向你身邊熟悉的的同學(xué)、朋友或同事等人請(qǐng)教自己在學(xué)習(xí)、生活、工作上遇到的問題,但如果你整天向某個(gè)人請(qǐng)教問題,他不煩你也會(huì)不好意思. 此平臺(tái)的意向之一就是解決這種問題. 通過此平臺(tái)回你提出的問題的人大多是你不認(rèn)識(shí)的,但他卻一樣能夠幫你解決問題.這樣就到達(dá)了知識(shí)更廣范圍內(nèi)的共享,符合之前系統(tǒng)設(shè)計(jì)的目標(biāo).無論哪個(gè)網(wǎng)站都要有它自己的設(shè)計(jì)規(guī)那么。該平臺(tái)
30、也一樣,它的主要設(shè)計(jì)規(guī)那么有:簡(jiǎn)單性:在實(shí)現(xiàn)平臺(tái)的功能的同時(shí),盡量讓平臺(tái)操作簡(jiǎn)單易懂,界面設(shè)計(jì)簡(jiǎn)潔優(yōu)雅,這對(duì)于一個(gè)網(wǎng)站來說是非常重要的。2針對(duì)性:該平臺(tái)設(shè)計(jì)是某個(gè)專業(yè)領(lǐng)域的知識(shí)問答定向開發(fā)設(shè)計(jì),所以具有專業(yè)突出和很強(qiáng)的針對(duì)性。3實(shí)用性:該平臺(tái)能完成問題列表的展示和豐富的用戶后臺(tái)應(yīng)用,具有良好的實(shí)用性。 第三章 網(wǎng)站總體功能設(shè)計(jì)3.1 普通用戶功能設(shè)計(jì)圖3-1:普通用戶用例圖具體說明:管理收藏夾 查看收藏夾、添加收藏夾、修改某條收藏,刪除某條收藏管理個(gè)人信息 修改個(gè)人資料、修改密碼、修改郵箱管理問題 查看我提的問題,查看我答復(fù)的問題管理通訊錄 添加聯(lián)系人、添加組、修改聯(lián)系人、查看聯(lián)系人信息管理記
31、事本 查看記事本、添加記事、修改記事、刪除記事管理短消息 查看接收的短消息、發(fā)送短消息、收藏短消息、把短消息放到垃圾箱、徹底刪除短消息3.2 管理員功能設(shè)計(jì)圖3-2:管理員用戶用例圖具體說明管理用戶 管理用戶狀態(tài): 啟用、禁用;查看用戶列表管理問題 管理問題狀態(tài): 關(guān)閉問題、恢復(fù)問題管理問題分類 添加分類、修改分類、查看分類系統(tǒng)管理 修改密碼、平安退出系統(tǒng) 第四章 網(wǎng)站系統(tǒng)詳細(xì)設(shè)計(jì)4.1 系統(tǒng)實(shí)體模型設(shè)計(jì) 用戶與用戶詳細(xì)、用戶空間、用戶積分等級(jí)、角色、空間樣式實(shí)體關(guān)系設(shè)計(jì)圖4-1-1:用戶與詳細(xì)實(shí)體類關(guān)系圖描述:每一個(gè)用戶對(duì)應(yīng)一種用戶角色,對(duì)應(yīng)一個(gè)用戶空間,對(duì)應(yīng)一個(gè)用戶積分等級(jí),還對(duì)應(yīng)一個(gè)用戶
32、詳細(xì)信息;每一個(gè)空間對(duì)應(yīng)一種空間樣式。 用戶與收藏夾實(shí)體關(guān)系設(shè)計(jì)圖4-1-2:用戶與收藏來關(guān)系圖描述:每一個(gè)用戶有多條收藏,也可以有多個(gè)鏈接標(biāo)簽,而每一條收藏對(duì)應(yīng)有多個(gè)標(biāo)簽,每個(gè)標(biāo)簽也對(duì)應(yīng)有多條收藏。 用戶與通訊錄實(shí)體關(guān)系設(shè)計(jì)圖4-1-3:用戶與通訊錄關(guān)系圖描述:每一個(gè)用戶有多個(gè)聯(lián)系人,也可以有多個(gè)聯(lián)系人組,而每一個(gè)聯(lián)系人組對(duì)應(yīng)有多個(gè)聯(lián)系人,每個(gè)聯(lián)系人也可以屬于多個(gè)聯(lián)系人組。 用戶與記事本實(shí)體關(guān)系設(shè)計(jì)圖4-1-4:用戶與記事本關(guān)系圖描述:每一個(gè)用戶實(shí)體對(duì)應(yīng)多條記事。 用戶與問題、答案的實(shí)體關(guān)設(shè)計(jì)圖4-1-5:用戶與問題關(guān)系圖描述:每一個(gè)用戶可以提出多個(gè)問題,也可以答復(fù)多個(gè)答案;每一個(gè)問題都可以
33、有多條答復(fù),而最正確答案只有一個(gè),用答案狀態(tài)status來表示;每一個(gè)提出來的問題都有之對(duì)應(yīng)的唯一一個(gè)一級(jí)目錄和二級(jí)目錄;每一個(gè)一級(jí)目錄對(duì)應(yīng)多個(gè)二級(jí)目錄,還對(duì)應(yīng)多個(gè)問題;每一個(gè)二級(jí)目錄對(duì)應(yīng)一個(gè)一級(jí)目錄,還對(duì)應(yīng)多個(gè)問題。4.2 系統(tǒng)架構(gòu)設(shè)計(jì)根本架構(gòu)的設(shè)計(jì)以下圖:圖4-2-1:三層架構(gòu)圖 面向接口設(shè)計(jì)圖4-2-2:面向接口類關(guān)系設(shè)計(jì)圖Service具體實(shí)現(xiàn)類交給了Spring容器管理,通過注別離的效果,便于系統(tǒng)日后的維護(hù)與升級(jí)。本系統(tǒng)采用JPA解方式或XML配置文件的方式將其注入到相應(yīng)的接口,這樣就實(shí)現(xiàn)了接口與實(shí)現(xiàn)注解方式實(shí)現(xiàn)注入功能。注入方向如以下圖:圖4-2-3:注入方向圖4.3 系統(tǒng)局部順序
34、圖分析 用戶注冊(cè)順序圖圖4-3-1:用戶注冊(cè)順序圖 用戶登陸順序圖圖4-3-2:用戶登陸順序圖 添加聯(lián)系人順序圖圖4-3-3:添加聯(lián)系人順序圖 第五章 使用技術(shù)介紹5.1 JavaMail的應(yīng)用JavaMail,顧名思義,提供應(yīng)開發(fā)者處理電子郵件相關(guān)的編程接口。它是Sun發(fā)布的用來處理email的API。它可以方便地執(zhí)行一些常用的郵件傳輸。J2EE5的提供相應(yīng)的jar包.發(fā)送Email的關(guān)鍵代碼如下:public static void sendEmail(String subject,String contents,String toemail) throws Exception Prope
35、rties props = new Properties(); props.setProperty(tocol, smtp); props.setProperty(mail.smtp.auth, true); Session session = Session.getInstance(props); session.setDebug(true); Message msg = new MimeMessage(session); msg.setSubject(subject); msg.setContent(+contents+,text/html;charse
36、t=gbk); msg.setFrom(new InternetAddress(BaseConfig.readEmail(emailurl); Transport transport = session.getTransport(); transport.connect(BaseConfig.readEmail(emailsmtp), 25, BaseConfig.readEmail(emailusername),BaseConfig.readEmail(emailpassword); transport.sendMessage(msg,new Addressnew InternetAddre
37、ss(toemail); transport.close(); subjet:主題 contents:發(fā)送的內(nèi)容 toemail:接收者郵件使用dbcp連接池優(yōu)化性能本工程中使用數(shù)據(jù)源和指定persistence.xml位置的方式創(chuàng)立entityManagerFactory.首先在將dbcp實(shí)現(xiàn)的相關(guān)jar包拷至lib目錄下.然后在Beans.xml要配置,如下: initialSize表示初始化連接數(shù)大小;maxActive表示最大連接數(shù)的大小;maxIdle表示最大空閑值;minIdle表示最小空閑值.利用jquery實(shí)現(xiàn)Ajax異步調(diào)用 通過jquery實(shí)現(xiàn)的Ajax,使我們不用考慮瀏覽
38、器的兼容性。用用一段簡(jiǎn)單的代碼即可實(shí)現(xiàn)Ajax異步調(diào)用效果。本工程采用的是jquery-1.3.min.js版本.$.ajax( type: post, url: /answer/up.htm, data: post, success: function(msg) /獲取msg返回?cái)?shù)據(jù) );5.4 使用urlrewrite實(shí)現(xiàn)url重寫使用urlrewrite可以不用去訪問真實(shí)的路徑,而是通過一個(gè)模式去匹配,然后該請(qǐng)求轉(zhuǎn)發(fā)到那個(gè)真實(shí)的路徑。隱藏真實(shí)路徑在一定程序上增加了程序的平安。使用urlrewrite首先要引入相應(yīng)jar包,本工程使用的是urlrewrite-.jar,還需要將urlrew
39、rite.xml文件在到WEB-INF目錄下,配置如下:read messages /user/messages/(0-9+$) /user/messages/manage.htm?id=$1&method=read/user/messages/list/(.*)/user/messages/list.htm?method=$1/user/questions/list/(a-z+$)/user/questions/list.htm?method=$1匹配模式使用的是正那么表達(dá)式,如:(0-9+$)匹配的是一個(gè)或多個(gè)數(shù)字,并最后要以數(shù)字結(jié)尾.當(dāng)訪問路徑/user/messages/21時(shí),url
40、rewrite會(huì)將其攔截,然后轉(zhuǎn)發(fā)至/user/messages/manage.htm?id=21&method=read路徑.5.5 使用dom4j操作xml文件本工程用到dom4j初始化數(shù)據(jù),初始化問題目錄方法如下:public class InitSystemDatas public void addOrUpdateInitDatas(String xmlFilePath) throws Exceptiontry String filePath = null;if(xmlFilePath=null | xmlFilePath.trim().equals()filePath = file;
41、elsefilePath = xmlFilePath;/DOM4J的使用 Document document = new SAXReader().read(getClass().getClassLoader().getResourceAsStream(filePath);importCategory(document.selectNodes(/Categorys/Category); catch (Exception e) throw new Exception(初始化出錯(cuò)!);document.selectNodes(/Categorys/Category)返回的是一個(gè)List列表對(duì)象.im
42、portCategory方法如下:protected void importCategory(List categorys)for (Iterator iter = categorys.iterator(); iter.hasNext();) Element element = (Element)iter.next();Category category = new Category();category.setName(element.attributeValue(name);category.setDepict(element.attributeValue(depict);category
43、.setOrderNo(Integer.parseInt(element.attributeValue(orderNo);if(categoryService.find(element.attributeValue(name)=null)categoryService.save(category);List subList = element.selectNodes(SubCategory);for(Iterator subiter = subList.iterator(); subiter.hasNext();)Element subelement = (Element)subiter.ne
44、xt();if(subCategoryService.find(subelement.attributeValue(name)!=null)continue;SubCategory subCategory = new SubCategory();subCategory.setCategory(category);subCategory.setName(subelement.attributeValue(name);subCategory.setDepict(subelement.attributeValue(depict);subCategory.setOrderNo(Integer.pars
45、eInt(subelement.attributeValue(orderNo);subCategoryService.save(subCategory);將節(jié)點(diǎn)及子節(jié)點(diǎn)的屬性封裝成POJO實(shí)體對(duì)象,對(duì)應(yīng)的xml文件如下: 5.6 全文檢索技術(shù)之compass+luncene的整合全文檢索:把用戶的查詢請(qǐng)求各全文中的每一個(gè)詞進(jìn)行比擬,不考慮查詢請(qǐng)求與文本語(yǔ)義上的匹配。在信息檢索工具中,全文檢索是最具通用性和實(shí)用性的.數(shù)據(jù)庫(kù)的搜索不能實(shí)現(xiàn)全文檢索的要求,原因如下:匹配效果:如搜索ant,在sql中使用like %ant%否是會(huì)搜索出planting的,但它不應(yīng)出現(xiàn).查出的結(jié)果沒有相關(guān)度排序,不知道
46、有用的結(jié)果說明在哪一頁(yè)搜索速度太慢,達(dá)不到毫秒級(jí)的要求. 本工程采用compass+luncene+spring2.5整合,在beans.xml配置如下 :索引存放位置file:/e:/index!CDATA!CDATA 在實(shí)體類中用注解的方式標(biāo)識(shí)要搜索的實(shí)體,如標(biāo)識(shí)問題為搜索對(duì)象:Entity Searchablepublic class Question implements Serializableprivate int qid;private String title;private String content;private int offerscore;private int s
47、tatus;private Date questiontime = new Date();private int clickcount;Id GeneratedValue SearchableIdpublic int getQid() return qid;public void setQid(int qid) this.qid = qid; Column SearchableProperty(name=qtitle,boost=2,store=Store.YES) public String getTitle() return title;public void setTitle(Strin
48、g title) this.title = title;Lob SearchableProperty(name=qcontent,store=Store.YES)public String getContent() return content;public void setContent(String content) this.content = content;Column SearchableProperty(index=Index.NO,store=Store.YES)public int getOfferscore() return offerscore;public void s
49、etOfferscore(int offerscore) this.offerscore = offerscore;Column(length=5) SearchableProperty(index=Index.NO,store=Store.YES)public int getStatus() return status;public void setStatus(int status) this.status = status;Column SearchableProperty(index=Index.NO,store=Store.YES)public Date getQuestiontim
50、e() return questiontime;public void setQuestiontime(Date questiontime) this.questiontime = questiontime;Column SearchableProperty(index=Index.NO,store=Store.YES)public int getClickcount() return clickcount;public void setClickcount(int clickcount) this.clickcount = clickcount;Searchable注解表示要搜索的實(shí)體.Se
51、archableId標(biāo)識(shí)實(shí)體的主鍵.SearchableProperty(name=qcontent,store=Store.YES)表示要搜索的屬性,并將其作為索引,存放在Beans.xml指定的文件路徑中.在不更改該數(shù)據(jù)的情況下,以后就直接從索引庫(kù)里面找,不用再查找數(shù)據(jù)庫(kù).SearchableProperty(index=Index.NO,store=Store.YES)index=Index.NO表示不作為索引值.5.7 使用freemark生成靜態(tài)頁(yè)面FreeMarker允許Java servlet保持圖形設(shè)計(jì)同應(yīng)用程序邏輯的別離,這是通過在模板中密封HTML完成的。模板用servle
52、t提供的數(shù)據(jù)動(dòng)態(tài)地生成 HTML。模板語(yǔ)言是強(qiáng)大的直觀的,編譯器速度快,輸出接近靜態(tài)HTML頁(yè)面的速度。本工程的郵件內(nèi)容模板使用到了該技術(shù),主要代碼如下:Configuration freemarkerCfg = new Configuration();ServletContext context = request.getSession().getServletContext(); freemarkerCfg.setServletContextForTemplateLoading(context,/WEB-INF/);try /指定模版路徑 Template template = freem
53、arkerCfg.getTemplate(getpassword.ftl, gbk); Writer writer = new StringWriter(); Map data = new HashMap(); /給模板getpassword.ftl動(dòng)態(tài)填充數(shù)據(jù) data.put(username, user.getUsername(); data.put(validateCode, MD5.MD5Encode(user.getUsername()+user.getPassword(); /處理模版 cess(data, writer); writer.flush();
54、 writer.close(); String mailContent = writer.toString();/得到郵件內(nèi)容EmailSender.send(user.getEmail(), 大蝦網(wǎng)-找回密碼, mailContent, text/html); 第六章 系統(tǒng)非功能概述6.1 系統(tǒng)開發(fā)環(huán)境介紹 新的JSP標(biāo)準(zhǔn)版本包括新的用于提升程序員工作效率功能,主要有:An Expression Language (EL) 允許開發(fā)者創(chuàng)立 Velocity-樣式 templates (among other things).更快更簡(jiǎn)單的創(chuàng)立新標(biāo)簽的方法。Hello, $param.visit
55、or %- same as: Hello, -%MVC 模式為了把表現(xiàn)層presentation從請(qǐng)求處理request processing 和數(shù)據(jù)存儲(chǔ)data storage中別離開來,SUN公司推薦在JSP文件中使用一種“模型-視圖-控制器Model-view-controller 模式。標(biāo)準(zhǔn)的SERVLET或者別離的JSP文件用于處理請(qǐng)求。當(dāng)請(qǐng)求處理完后,控制權(quán)交給一個(gè)只作為創(chuàng)立輸出作用的JSP頁(yè)。有幾種平臺(tái)都基于效勞于網(wǎng)絡(luò)層的模-視圖-控件 模式(比方Struts 和Spring framework)。編輯本段JSP技術(shù)的強(qiáng)勢(shì)1一次編寫,到處運(yùn)行。在這一點(diǎn)上Java比PHP更出色,除
56、了系統(tǒng)之外,代碼不用做任何更改。2系統(tǒng)的多平臺(tái)支持。根本上可以在所有平臺(tái)上的任意環(huán)境中開發(fā),在任意環(huán)境中進(jìn)行系統(tǒng)部署,在任意環(huán)境中擴(kuò)展。相比ASP/PHP的局限性是顯而易見的。 3強(qiáng)大的可伸縮性。從只有一個(gè)小的Jar文件就可以運(yùn)行Servlet/JSP,到由多臺(tái)效勞器進(jìn)行集群和負(fù)載均衡,到多臺(tái)Application進(jìn)行事務(wù)處理,消息處理,一臺(tái)效勞器到無數(shù)臺(tái)效勞器,Java顯示了一個(gè)巨大的生命力。 4多樣化和功能強(qiáng)大的開發(fā)工具支持。這一點(diǎn)與ASP很像,Java已經(jīng)有了許多非常優(yōu)秀的開發(fā)工具,而且許多可以免費(fèi)得到,并且其中許多已經(jīng)可以順利的運(yùn)行于多種平臺(tái)之下。servlet簡(jiǎn)介 Servlet 使
57、用一個(gè) HTML 表格來發(fā)送和接收數(shù)據(jù)。要?jiǎng)?chuàng)立一個(gè) Servlet,請(qǐng)擴(kuò)展 Servlet 類, 該類是用專門的方法來處理 HTML 表格的 GenericServlet 的一個(gè)子類。 HTML 表單是由 和 標(biāo)記定義的。表單中典型地包含輸入字段(如文本輸入字段、復(fù)選框、單項(xiàng)選擇按鈕和選擇列表)和用于提交數(shù)據(jù)的按鈕。當(dāng)提交信息時(shí),它們還指定效勞器應(yīng)執(zhí)行哪一個(gè)Servlet(或其它的程序)。 Servlet 類包含 init()、destroy()、service() 等方法。其中 init() 和 destroy() 方法是繼承的。 (1) init() 方法 在 Servlet 的生命期中,
58、僅執(zhí)行一次 init() 方法。它是在效勞器裝入 Servlet 時(shí)執(zhí)行的。 可以配置效勞器,以在啟動(dòng)效勞器或客戶機(jī)首次訪問 Servlet 時(shí)裝入 Servlet。 無論有多少客戶機(jī)訪問 Servlet,都不會(huì)重復(fù)執(zhí)行 init() 。 缺省的 init() 方法通常是符合要求的,但也可以用定制 init() 方法來覆蓋它,典型的是管理效勞器端資源。 例如,可能編寫一個(gè)定制 init() 來只用于一次裝入 GIF 圖像,改良 Servlet 返回 GIF 圖像和含有多個(gè)客戶機(jī)請(qǐng)求的性能。另一個(gè)例如是初始化數(shù)據(jù)庫(kù)連接。缺省的 init() 方法設(shè)置了 Servlet 的初始化參數(shù),并用它的 S
59、ervletConfig 對(duì)象參數(shù)來啟動(dòng)配置, 因此所有覆蓋 init() 方法的 Servlet 應(yīng)調(diào)用 super.init() 以確保仍然執(zhí)行這些任務(wù)。在調(diào)用 service() 方法之前,應(yīng)確保已完成了 init() 方法。 (2) service() 方法 service() 方法是 Servlet 的核心。每當(dāng)一個(gè)客戶請(qǐng)求一個(gè) Servlet 對(duì)象,該對(duì)象的service() 方法就要被調(diào)用,而且傳遞給這個(gè)方法一個(gè)請(qǐng)求(ServletRequest)對(duì)象和一個(gè)響應(yīng)(ServletResponse)對(duì)象作為參數(shù)。 在 Servlet 中已存在 service() 方法。缺省的效勞功能
60、是調(diào)用與 請(qǐng)求的方法相應(yīng)的 do 功能。例如, 如果 請(qǐng)求方法為 GET,那么缺省情況下就調(diào)用 doGet() 。Servlet 應(yīng)該為 Servlet 支持的 方法覆蓋 do 功能。因?yàn)?Servlet.service() 方法會(huì)檢查請(qǐng)求方法是否調(diào)用了適當(dāng)?shù)奶幚矸椒?,不必要覆蓋 service() 方法。只需覆蓋相應(yīng)的 do 方法就可以了。Servlet的響應(yīng)可以是以下幾種類型: 一個(gè)輸出流,瀏覽器根據(jù)它的內(nèi)容類型(如text/HTML)進(jìn)行解釋。 一個(gè) 錯(cuò)誤響應(yīng), 重定向到另一個(gè)URL、servlet、JSP。 (3)doGet()方法當(dāng)一個(gè)客戶通過HTML 表單發(fā)出一個(gè) GET請(qǐng)求或直接
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 IEC 60364-4-44:2024 RLV EN Low-voltage electrical installations - Part 4-44: Protection for safety - Protection against voltage disturbances and electromagnetic disturbances
- 2025-2030年中國(guó)采鹽行業(yè)市場(chǎng)運(yùn)營(yíng)狀況及發(fā)展趨勢(shì)分析報(bào)告
- 2025-2030年中國(guó)酒店用品行業(yè)運(yùn)行態(tài)勢(shì)及發(fā)展前景分析報(bào)告
- 2025-2030年中國(guó)過硫酸鹽行業(yè)運(yùn)行狀況及發(fā)展前景分析報(bào)告
- 2025-2030年中國(guó)輕質(zhì)碳酸鈣行業(yè)競(jìng)爭(zhēng)態(tài)勢(shì)與營(yíng)銷策略研究報(bào)告
- 2025-2030年中國(guó)車輛專用照明及電氣信號(hào)設(shè)備制造市場(chǎng)十三五規(guī)劃與發(fā)展策略分析報(bào)告
- 2025-2030年中國(guó)螺絲刀行業(yè)運(yùn)行狀況及前景趨勢(shì)分析報(bào)告
- 2025-2030年中國(guó)船舶租賃市場(chǎng)運(yùn)行現(xiàn)狀及發(fā)展趨勢(shì)預(yù)測(cè)報(bào)告
- 2025-2030年中國(guó)膨化食品市場(chǎng)運(yùn)營(yíng)狀況與發(fā)展策略分析報(bào)告
- 2025-2030年中國(guó)紙漿產(chǎn)業(yè)運(yùn)行狀況與前景趨勢(shì)分析報(bào)告
- 醫(yī)院CT機(jī)房裝飾改造工程施工組織設(shè)計(jì)
- 基坑監(jiān)測(cè)總結(jié)報(bào)告
- 2024年華師大版九年級(jí)數(shù)學(xué)下冊(cè)全冊(cè)教案
- 合肥市廬陽(yáng)區(qū)雙崗街道社區(qū)工作者招聘考試試題及答案2024
- JBT 106-2024 閥門的標(biāo)志和涂裝(正式版)
- 煤礦技術(shù)員必須會(huì)的知識(shí)
- (高清版)JTGT 3650-01-2022 公路橋梁施工監(jiān)控技術(shù)規(guī)程
- 2024年黑龍江建筑職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)全面
- 北京市2024小升初數(shù)學(xué)模擬試卷一
- 一年級(jí)口算題100以內(nèi)比大小
- 《提案與方案優(yōu)化設(shè)計(jì)》課件-第一部分 常見戶型問題解析及平面布局優(yōu)化
評(píng)論
0/150
提交評(píng)論