版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
題目:基于SSM的個(gè)人博客系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)產(chǎn)品設(shè)計(jì)工藝設(shè)計(jì)方案設(shè)計(jì)√摘要隨著網(wǎng)絡(luò)信息化和科技化的開(kāi)展,博客在溝通自在和資源共享的精神的影響下順應(yīng)而生。博客的橫空發(fā)展讓我們有更多機(jī)會(huì)在日常生活中向別人分享本人的觀念意見(jiàn)和知識(shí)資源。博客就是一個(gè)開(kāi)放的個(gè)人空間,可允許他人觀覽。在博客中,你能夠隨你個(gè)人的見(jiàn)解抒發(fā)自己的思維和表達(dá)言論。可以在博客上認(rèn)識(shí)各個(gè)階層的人,擴(kuò)大自己的知識(shí)面。 互聯(lián)網(wǎng)在為人們的學(xué)習(xí),教育和生活都提供了很大的幫助。從而導(dǎo)致了各個(gè)網(wǎng)站的出現(xiàn)。個(gè)人博客系統(tǒng)能夠?yàn)闃?shù)立個(gè)人在互聯(lián)網(wǎng)上的形象可以提供了一個(gè)優(yōu)異的平臺(tái)。 JAVA作為當(dāng)今社會(huì)最為流行的計(jì)算機(jī)技術(shù)之一,J2EE非常適用于Web前端的應(yīng)用和開(kāi)發(fā)的設(shè)計(jì)。另一個(gè)方面,現(xiàn)在基于J2EE的框架在當(dāng)今社會(huì)互聯(lián)網(wǎng)上存在有很長(zhǎng)的歷史了,java開(kāi)發(fā)同樣也是相當(dāng)活躍。此文的目標(biāo)就是利用J2EE開(kāi)發(fā)去完成個(gè)人博客系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)。關(guān)鍵詞:個(gè)人博客系統(tǒng)SpringMVC;B/S結(jié)構(gòu);Spring;MyBatis目錄TOC\o"1-4"\h\u1.設(shè)計(jì)背景及意義 1234541.1設(shè)計(jì)背景 設(shè)計(jì)背景與意義1.1設(shè)計(jì)背景邁入二十一世紀(jì)的腳步,以“網(wǎng)絡(luò)信息化”為基礎(chǔ)的網(wǎng)絡(luò)信息化已經(jīng)獲得了較快的發(fā)展,很多網(wǎng)絡(luò)通訊交流工具也都隨之出現(xiàn)。在網(wǎng)絡(luò)信息化慢慢的進(jìn)入到了我們生活的大小層面,傳統(tǒng)的溝通方式即將被淘汰,但是個(gè)人博客系統(tǒng)作為很重要的溝通平臺(tái)?;诰W(wǎng)絡(luò)全球化可以由遍布全世界的網(wǎng)絡(luò)進(jìn)行,所以溝通一方面是本地進(jìn)行,另一方面也可以是異地進(jìn)行溝通交流,深深的提高了交流與溝通的靈活性和敏捷性。博客在當(dāng)今極速發(fā)展的網(wǎng)絡(luò)信息化時(shí)代成為人們不可以缺少的一個(gè)重要工具1.2設(shè)計(jì)意義博客(blog),是起源于“WebLog”,中文意思是一個(gè)叫“網(wǎng)絡(luò)日志"的,是作為一個(gè)非常簡(jiǎn)單,方便的個(gè)人信息發(fā)布方式。博客是由簡(jiǎn)潔且迅速更新的帖子組成的,它可以記錄和發(fā)布有關(guān)個(gè)人的經(jīng)歷,生活趣事,思想感悟,發(fā)揮個(gè)人的獨(dú)特想法。寫(xiě)博客是因?yàn)榭梢园炎约浩嫠济钕氲南敕ㄔ诰W(wǎng)絡(luò)中發(fā)布出來(lái),把獨(dú)特的見(jiàn)解變成觀點(diǎn)分享給人們。那么瀏覽博客的人們,從而也可以對(duì)博主的觀點(diǎn)和見(jiàn)解的文章進(jìn)行自己的觀點(diǎn)發(fā)表,博客就這樣取得了越來(lái)越多的網(wǎng)民的歡心,并且引領(lǐng)了很多新的浪潮。博客是一種適應(yīng)人際關(guān)系交往的改變。為了人們之間的溝通交流逐步的越來(lái)越數(shù)字信息化和為了迎合個(gè)人的信息共享的主要需求的場(chǎng)所。 2.設(shè)計(jì)思路1.完成數(shù)據(jù)庫(kù)的分析與實(shí)現(xiàn),創(chuàng)建數(shù)據(jù)庫(kù)表;
2.設(shè)計(jì)登錄界面,與數(shù)據(jù)庫(kù)里的數(shù)據(jù)相連接,實(shí)現(xiàn)登錄界面;
3.設(shè)計(jì)博客系統(tǒng)的首頁(yè),完成首頁(yè)的模塊界面設(shè)計(jì);
4.設(shè)計(jì)博客系統(tǒng)的后臺(tái)系統(tǒng),分功能設(shè)計(jì)后臺(tái)的模塊;
5.在數(shù)據(jù)庫(kù)中添加數(shù)據(jù),完成數(shù)據(jù)庫(kù)與后臺(tái)系統(tǒng)的連接;
6.完善前臺(tái)首頁(yè)的頁(yè)面布局,設(shè)計(jì)出美觀的界面;
7.整合所有項(xiàng)目,測(cè)試博客系統(tǒng)各個(gè)模塊的功能,修復(fù)發(fā)現(xiàn)的問(wèn)題3.系統(tǒng)設(shè)計(jì)3.1系統(tǒng)功能分析圖3-1系統(tǒng)流程圖本此設(shè)計(jì)的個(gè)人博客系統(tǒng)主要有兩個(gè)不同的位置,一個(gè)是博主,另一個(gè)是游客。在此次設(shè)計(jì)中只能允許博主進(jìn)入到后臺(tái)管理去系統(tǒng),可以發(fā)表博客。 1.首先博主要登錄用戶名和后臺(tái)密碼進(jìn)入到后臺(tái)管理系統(tǒng),才可以發(fā)布博客內(nèi)容。 2.在首頁(yè),博主和游客都可以去觀看博客。 3.博主和游客都可以去其他博主的博客下發(fā)表評(píng)論。 4.首先要經(jīng)過(guò)博主在后臺(tái)的評(píng)論審核,評(píng)論才可以發(fā)布出去。 5.在被審核通過(guò)后,博主和游客才能看到被成功發(fā)布的評(píng)論。3.2系統(tǒng)設(shè)計(jì)3.2.1博主用例圖3-2-1博主用例圖博主的主要功能說(shuō)明:1.登錄功能 登錄后臺(tái)管理系統(tǒng):在先開(kāi)始博主會(huì)進(jìn)入后臺(tái)登錄頁(yè)面,則會(huì)被要求輸入賬號(hào)和密碼。然后系統(tǒng)會(huì)使用Shiro來(lái)進(jìn)行安全管理的,會(huì)對(duì)博主輸入的密碼去進(jìn)行加密運(yùn)算,然后與數(shù)據(jù)庫(kù)中存儲(chǔ)的密碼來(lái)比較。只有是完全一樣的才能成功登錄進(jìn)入后臺(tái)系統(tǒng)。 2.博客管理功能 博客管理功可以分為兩個(gè)部分,一個(gè)是寫(xiě)博客,一個(gè)是博客信息管理。寫(xiě)博客是博主可以來(lái)發(fā)表博客的內(nèi)容,一定要有博客標(biāo)題,完成之后可以自由選擇博客類型,最后可以將我們寫(xiě)的相關(guān)博客內(nèi)容發(fā)送到百度的富文本編輯器中,然后我們就發(fā)表博客成功了。 3.博客類別管理系統(tǒng) 博主類別管理系統(tǒng)是要我們對(duì)博客類型名稱和博客的排序序號(hào)進(jìn)行增,刪,改等具體操作。然后會(huì)在前臺(tái)的日志類別區(qū)域顯示出來(lái)。游客可以輕而易舉的從博主首頁(yè)區(qū)域查找感興趣的博客內(nèi)容。 4.評(píng)論管理功能 評(píng)論管理功能也分為兩個(gè)小的部分,一個(gè)是評(píng)論審核,一個(gè)是評(píng)論信息管理功能。評(píng)論審核是其他游客對(duì)博主的博客進(jìn)行點(diǎn)評(píng)之后,博主一定要在后臺(tái)去審核評(píng)論,如果博主審核成功,評(píng)論才能正常的發(fā)表 5.個(gè)人信息管理功能 當(dāng)前模塊是用來(lái)修改博主的個(gè)人信息,博主可以任意的改自己博客昵稱和個(gè)性簽名,同時(shí)也能添加博主的個(gè)人頭像,修改博主個(gè)人介紹。 6.系統(tǒng)管理功能 此模塊的功能主要有友情鏈接管理,支持博主修改密碼,然后允許博主刷新系統(tǒng)緩存和最后成功安全退出。 友情鏈接管理中還包括博主添加,刪除友情鏈接網(wǎng)址這兩個(gè)小的選項(xiàng)。3.2.2游客用例圖3-2-2游客用例圖用例一用例名稱:查詢博客參與者:游客主要流程:在查詢搜索處填寫(xiě)所需的條件點(diǎn)擊查詢便會(huì)顯示出符合條件的所有博客用例二用例名稱:查看博客內(nèi)容參與者:游客主要流程:點(diǎn)擊想要查看的博客,進(jìn)入博客內(nèi)容頁(yè)面觀看博客內(nèi)容信息用例三用例名稱:查看博主個(gè)人信息參與者:游客主要流程:點(diǎn)擊關(guān)于博主,進(jìn)入博主個(gè)人信息頁(yè)面可以看到博主的個(gè)人信息內(nèi)容用例四用例名稱:發(fā)表評(píng)論參與者:游客前置條件:首先要進(jìn)入到博客內(nèi)容頁(yè)面主要流程:在發(fā)表評(píng)論的評(píng)論框中寫(xiě)入自己想要發(fā)表的評(píng)論填入驗(yàn)證碼點(diǎn)擊發(fā)表評(píng)論用例五用例名稱:查看友情鏈接參與者:游客主要流程:在每個(gè)頁(yè)面的右下角可以看到友情鏈接若想跳轉(zhuǎn)到某個(gè)友情鏈接則點(diǎn)擊相應(yīng)的友情鏈接即可觀看友情鏈接內(nèi)容3.2.3系統(tǒng)類圖3-2-3博客類圖本此設(shè)計(jì)的主要功能實(shí)現(xiàn)和各個(gè)模塊的JavaBean是集中在博客、博客類型、評(píng)論、友情鏈接等等類中。一、博客類1.功能用于存儲(chǔ)博主發(fā)表的博客的一些信息2.屬性id;//編號(hào)title;//博客標(biāo)題summary;//摘要leaseDate;//發(fā)布日期clickHit;//查看次數(shù)replyHit;//回復(fù)次數(shù)content;//博客內(nèi)容contentNoTag;//博客內(nèi)容無(wú)網(wǎng)頁(yè)標(biāo)簽Lucene分詞用blogType;//博客類型blogCount;//博客數(shù)量非博客實(shí)際屬性,主要是根據(jù)發(fā)布日期歸檔查詢博客數(shù)量用releaseDateStr;//發(fā)布日期字符串只取年和月keyWord;//關(guān)鍵字3.方法是屬性對(duì)應(yīng)的setter設(shè)置方法,getter獲取方法二、博客類型類1.功能:對(duì)博客進(jìn)行分類,將博客分為幾大類型2.屬性:id;//編號(hào)userName;//用戶名password;//密碼nickName;//昵稱sign;//個(gè)性簽名proFile;//個(gè)人簡(jiǎn)介imageName;//博主頭像3.方法:對(duì)應(yīng)的setter,getter方法三,評(píng)論類:1.功能:對(duì)博客評(píng)論數(shù)據(jù)保存。2,。屬性:id;//編號(hào)userIp;//用戶IPcontent;//評(píng)論內(nèi)容blog;//被評(píng)論的博客commentDate;//評(píng)論日期state;//審核狀態(tài)0待審核1審核通過(guò)2審核未通過(guò)3.方法:對(duì)應(yīng)的setter,getter方法四.友情鏈接類1.功能:可以保存頁(yè)面上的友情鏈接網(wǎng)址。2.屬性:id;//編號(hào)linkName;//鏈接名稱linkUrl;//鏈接地址orderNo;//排序序號(hào)從小到大排序 3.方法:對(duì)應(yīng)的setter,getter方法。發(fā)布日期3.2.4E-R圖發(fā)布日期標(biāo)題摘要標(biāo)題摘要博客查看次數(shù)關(guān)鍵字博客查看次數(shù)關(guān)鍵字博客內(nèi)容發(fā)布日期博客類型 博客內(nèi)容發(fā)布日期博客類型 圖3-2-4博客E-R圖博客類的關(guān)系模式如下(加下劃線的是主鍵):博客類主要有博客編號(hào)(id),博客的名稱(title),關(guān)鍵字(keyWord),主要摘要(summary),發(fā)表日期(releaseDate),查看的次數(shù),博客的主要類型,博客內(nèi)容(content)。密碼用戶名密碼用戶名昵稱博主頭像博主昵稱博主頭像博主個(gè)性簽名個(gè)人簡(jiǎn)介個(gè)性簽名個(gè)人簡(jiǎn)介圖3-2-4博主E-R圖博主類(blogger)的數(shù)據(jù)類型模式如下: 博主類(博主(id),博主的用戶名(uername),密碼(password),昵稱(NickName),主要介紹(profile),博主的頭像(imageName)。博客類型名稱數(shù)量博客類型名稱數(shù)量博客類型博客類型排序排序圖4-7博客類型E-R圖博客類型類的關(guān)系模式如下(加下滑線的是主鍵):博客類型的類(博客類型的id,博客類型名稱(typeName),數(shù)量多少,排列順序)。評(píng)論內(nèi)容用戶IP評(píng)論內(nèi)容用戶IP被評(píng)論的博客被評(píng)論的博客評(píng)論評(píng)論評(píng)論日期審核狀態(tài)評(píng)論日期審核狀態(tài)圖4-8評(píng)論E-R圖評(píng)論類的數(shù)據(jù)類型如下(加下滑線的是主鍵):評(píng)論comment(編號(hào)(id),用戶IP(userip),評(píng)論內(nèi)容content,被評(píng)論的博客,評(píng)論日期commentDate,審核狀態(tài))鏈接地址鏈接名稱鏈接地址鏈接名稱友情鏈接友情鏈接排序排序圖3-2-4友情鏈接E-R圖友情鏈接類(link)的數(shù)據(jù)類型關(guān)系如下(加下滑線的是主鍵): 友情鏈接實(shí)體(編號(hào)id,鏈接名稱linkName,鏈接地址linkUrl,排序序號(hào)orderNo)。3.2.5系統(tǒng)表設(shè)計(jì)系統(tǒng)總共有五張表,分別是博客表,博主表,博客類型表,評(píng)論表,友情鏈接表。如下所示:t_blog表字段名數(shù)據(jù)類型允許非空idint(11)notitlevarchar(200)yessummaryvarchar(400)yesreleaseDatedatetimeyesclickHitint(11)yesreplyHitint(11)yescontenttextyestypeIdint(11)yes表t_blogger字段名數(shù)據(jù)類型允許非空idint(11)nouserNamevarchar(50)yespasswordvarchar(100)yesprofiletextyesnickNamevarchar(50)yessignvarchar(100)yesimageNamevarchar(100)yes表t_blogtye字段名數(shù)據(jù)類型允許非空idint(11)notypeNamevarchar(30)yesorderNoint(11)yes表t_comment字段名數(shù)據(jù)類型允許非空idint(11)nouserIpvarchar(50)yesblogIdint(11)yescontentvarchar(1000)yescommentDatedatetimeyesstateint(11)yes表t_link字段名數(shù)據(jù)類型允許非空idint(11)nolinkNamevarchar(100)yeslinkUrlvarchar(200)yesorderNoint(11)yes3.3系統(tǒng)實(shí)現(xiàn)3.3.1登錄模塊當(dāng)博主進(jìn)入到后臺(tái)系統(tǒng)后,博主就要開(kāi)始輸入自己的賬號(hào)和密碼,密碼在數(shù)據(jù)庫(kù)中采用了MD5加密方式,他會(huì)去調(diào)用控制層的代碼,在進(jìn)入(dao)層業(yè)務(wù)層去和數(shù)據(jù)庫(kù)中保存的數(shù)據(jù)進(jìn)行調(diào)用來(lái)確認(rèn)是否一致,然后就可以跳轉(zhuǎn)到系統(tǒng)后臺(tái)登錄首頁(yè)模塊主要代碼:JSP代碼:使用form表單提交到后臺(tái)進(jìn)行數(shù)據(jù)驗(yàn)證:<formaction="${pageContext.request.contextPath}/blogger/login.do"method="post"onsubmit="returncheckForm()"> <DIVstyle="width:165px;height:96px;position:absolute;"> <DIVclass="tou"> </DIV> <DIVclass="initial_left_hand"id="left_hand"> </DIV> <DIVclass="initial_right_hand"id="right_hand"> </DIV> </DIV> <Pstyle="padding:30px0px10px;position:relative;"> <SPANclass="u_logo"></SPAN> <INPUTid="userName"name="userName"class="ipt"type="text"placeholder="請(qǐng)輸入用戶名"value="${blogger.userName}"> </P> <Pstyle="position:relative;"> <SPANclass="p_logo"></SPAN> <INPUTid="password"name="password"class="ipt"type="password"placeholder="請(qǐng)輸入密碼"value="${blogger.password}"> </P> <DIVstyle="height:50px;line-height:50px;margin-top:30px;border-top-color:rgb(231,231,231);border-top-width:1px;border-top-style:solid;"> <Pstyle="margin:0px35px20px45px;"> <SPANstyle="float:left;"><ahref="${pageContext.request.contextPath}/index.html">Java個(gè)人博客系統(tǒng)</a></SPAN> <span><fontcolor="red"id="error">${errorInfo}</font></span> <SPANstyle="float:right;"> <inputtype="submit"value="登錄"/> </SPAN> </P> </DIV> </DIV></form>在登錄過(guò)程中,js將用于驗(yàn)證blogger輸入的用戶名和密碼。如果用戶名或密碼為空,將提示用戶輸入一條錯(cuò)誤消息以提醒用戶,用戶將再次發(fā)現(xiàn)錯(cuò)誤。 varuserName=$("#userName").val(); varpassword=$("#password").val(); if(userName==null||userName==""){ $("#error").html("用戶名不能為空!"); returnfalse; } if(password==null||password==""){ $("#error").html("密碼不能為空!"); returnfalse; } returntrue;}java代碼:使用MVC框架,對(duì)后臺(tái)數(shù)據(jù)和前臺(tái)form表單提交的數(shù)據(jù)進(jìn)行交互@Controller@RequestMapping("/blogger")publicclassBloggerController{ @Resource privateBloggerServicebloggerService; /** *用戶登錄 *@paramblogger *@paramrequest *@return */ @RequestMapping("/login") publicStringlogin(Bloggerblogger,HttpServletRequestrequest){ Subjectsubject=SecurityUtils.getSubject(); UsernamePasswordTokentoken=newUsernamePasswordToken(blogger.getUserName(),CryptographyUtil.md5(blogger.getPassword(),"java1234")); try{ subject.login(token);//登錄驗(yàn)證 return"redirect:/admin/main.jsp"; }catch(Exceptione){ e.printStackTrace(); request.setAttribute("blogger",blogger); request.setAttribute("errorInfo","用戶名或密碼錯(cuò)誤!"); return"login"; }3.3.2博客管理模塊:博客管理的管理模塊是提高給博主進(jìn)行使用的,博主可以在這里使用發(fā)布博客和對(duì)博客的信息進(jìn)行管理。博客系統(tǒng)首頁(yè)所展示的信息是在這里模塊發(fā)布。博客管理包含如下幾個(gè)內(nèi)容: 新建:博主可以發(fā)布新的博客內(nèi)容,博客可以選擇多種類型的東西去發(fā)表如圖片,視頻,音頻附件內(nèi)容。新建博客一定要存在博客標(biāo)題,可以選擇自己所需要的博客類別,然后填寫(xiě)博客內(nèi)容,才能發(fā)表文章。 搜索:在博客信息管理中,博主能輸入想要搜索的博客信息內(nèi)容,博客系統(tǒng)會(huì)自動(dòng)選擇出好的博客展現(xiàn)給用戶。 修改:博主可以隨時(shí)修改自己發(fā)表錯(cuò)內(nèi)容的博客,當(dāng)博主點(diǎn)擊修改時(shí)系統(tǒng)則會(huì)彈出修改博客頁(yè)面,然后博客的標(biāo)題,博客類型,博客內(nèi)容等等都可以任意修改。 刪除:博主可以選擇需要?jiǎng)h除的博客內(nèi)容,博客系統(tǒng)允許一個(gè)一個(gè)的刪除和全部刪除。博客查詢:圖3-3-4查詢博客時(shí)序圖步驟系統(tǒng)行為描述1博客信息管理頁(yè)面點(diǎn)查詢按鈕2頁(yè)面表單提交調(diào)用控制層控制層的list方法3控制層list方法中調(diào)用服務(wù)層的list方法4服務(wù)層調(diào)用持久層list方法返回博客集合按條件查詢博客,調(diào)用控制層的list方法,在其中調(diào)用服務(wù)層list方法,返回blog集合:List<Blog>list。獲得集合后使用方法把查詢到符要求的數(shù)據(jù)傳到前臺(tái),在前臺(tái)對(duì)數(shù)據(jù)進(jìn)行處理。中心代碼如下: @RequestMapping("/list") publicStringlist(@RequestParam(value="page",required=false)Stringpage,@RequestParam(value="rows",required=false)Stringrows,Blogs_blog,HttpServletResponseresponse)throwsException{ PageBeanpageBean=newPageBean(Integer.parseInt(page),Integer.parseInt(rows)); Map<String,Object>map=newHashMap<String,Object>(); map.put("title",StringUtil.formatLike(s_blog.getTitle())); map.put("start",pageBean.getStart()); map.put("size",pageBean.getPageSize()); List<Blog>blogList=blogService.list(map); Longtotal=blogService.getTotal(map); JSONObjectresult=newJSONObject(); JsonConfigjsonConfig=newJsonConfig(); jsonConfig.registerJsonValueProcessor(java.util.Date.class,newDateJsonValueProcessor("yyyy-MM-dd")); JSONArrayjsonArray=JSONArray.fromObject(blogList,jsonConfig); result.put("rows",jsonArray); result.put("total",total); ResponseUtil.write(response,result); returnnull; }博客新建:圖3-3-4新建博客時(shí)序圖步驟系統(tǒng)行為描述1博主在后臺(tái)頁(yè)面填寫(xiě)博客信息點(diǎn)擊發(fā)布博客按鈕2Jsp表單提交調(diào)用控制層controller的save方法3控制層save方法中調(diào)用service層的add方法4調(diào)用blogMapper持久層保存博客信息5添加索引點(diǎn)擊寫(xiě)博客進(jìn)入博客發(fā)布界面,然后填寫(xiě)博客的內(nèi)容信息,再單擊發(fā)布博客,就可以提交到控制層的save方法,參數(shù)將在:Blog被傳遞,該參數(shù)包括了此博客所有信息內(nèi)容,會(huì)在提交的時(shí)候采用javascript來(lái)驗(yàn)證博客的內(nèi)容。驗(yàn)證成功后,將調(diào)用控制層的方法,然后在控制層的save()方法中去調(diào)用服務(wù)層的add()方法,將博客數(shù)據(jù)保存到數(shù)據(jù)庫(kù)中。部分代碼如下@RequestMapping("/save") publicStringsave(Blogblog,HttpServletResponseresponse)throwsException{ intresultTotal=0;//操作的記錄條數(shù) if(blog.getId()==null){ resultTotal=blogService.add(blog); blogIndex.addIndex(blog);//添加博客索引 }else{ resultTotal=blogService.update(blog); blogIndex.updateIndex(blog);//更新博客索引 } JSONObjectresult=newJSONObject(); if(resultTotal>0){ result.put("success",true); }else{ result.put("success",false); } ResponseUtil.write(response,result); returnnull;}博客修改: 圖3-3-5修改博客時(shí)序圖步驟系統(tǒng)行為描述1博主在博客信息管理頁(yè)面選擇需要修改的博客打開(kāi)博客修改頁(yè)面2Jsp表單提交調(diào)用控制層controller的save方法3控制層save方法中調(diào)用service層的update方法4調(diào)用blogMapper持久層保存修改后的博客信息5更新索引博主進(jìn)入博客修改頁(yè)面,若要修改博客內(nèi)容信息,請(qǐng)單擊“發(fā)布博客”,然后提交到控制層的“保存”方法。傳入?yún)?shù):blog,它包含所有修改過(guò)的blog信息。提交時(shí),系統(tǒng)將使用JavaScript驗(yàn)證博客內(nèi)容。驗(yàn)證一致性后,將調(diào)用控制層的方法,在控制層的save()方法中調(diào)用服務(wù)層的update()方法,從而可以保存日志并持久保存到數(shù)據(jù)庫(kù)中。。部分代碼如下:@RequestMapping("/save") publicStringsave(Blogblog,HttpServletResponseresponse)throwsException{ intresultTotal=0;//操作的記錄條數(shù) if(blog.getId()==null){ resultTotal=blogService.add(blog); blogIndex.addIndex(blog);//添加博客索引 }else{ resultTotal=blogService.update(blog); blogIndex.updateIndex(blog);//更新博客索引 } JSONObjectresult=newJSONObject(); if(resultTotal>0){ result.put("success",true); }else{ result.put("success",false); } ResponseUtil.write(response,result); returnnull;}博客刪除:圖3-3-6刪除博客時(shí)序圖步驟系統(tǒng)行為描述1博主在博客信息管理頁(yè)面選擇需要?jiǎng)h除的博客(可以選擇多條)2調(diào)用控制層controller的delete方法3控制層delete方法中調(diào)用service層的delete方法4調(diào)用blogMapper持久層將對(duì)應(yīng)的博客信息刪除5刪除對(duì)應(yīng)博客的索引在“博客管理”頁(yè)面中,選擇需要?jiǎng)h除的博客,然后單擊“刪除”按鈕,將向控制層提交刪除方法,并傳遞參數(shù):如果需要?jiǎng)h除博客的ID,然后調(diào)用控制層的方法,則將在控制層的delete()方法中調(diào)用服務(wù)層的delete()方法,然后將刪除一個(gè)博客或更多博客并將其持久保存到數(shù)據(jù)庫(kù)中。部分代碼如下:@RequestMapping("/delete") publicStringdelete(@RequestParam(value="ids")Stringids,HttpServletResponseresponse)throwsException{ String[]idsStr=ids.split(","); for(inti=0;i<idsStr.length;i++){ blogService.delete(Integer.parseInt(idsStr[i])); blogIndex.deleteIndex(idsStr[i]);//刪除對(duì)應(yīng)博客的索引 } JSONObjectresult=newJSONObject(); result.put("success",true); ResponseUtil.write(response,result); returnnull; }3.4博客類別管理模塊3.4.1添加博客類別圖3-4-1添加博客類型時(shí)序圖步驟系統(tǒng)行為描述1博主在博客類別信息管理頁(yè)面點(diǎn)擊添加按鈕打開(kāi)添加博客類別彈窗2調(diào)用blogType控制層controller的save方法3控制層save方法中調(diào)用service層的add方法4調(diào)用blogTypeMapper持久層將對(duì)應(yīng)的博客類別信息添加5返回成功添加信息在博客類別管理頁(yè)面需要打開(kāi)添加博客類別彈窗,再填寫(xiě)博客類別名稱和排序,最后點(diǎn)擊保存按鈕,則會(huì)提交到控制層的save方法,才能傳入?yún)?shù):需要添加的博客類型blogType,去調(diào)用控制層的方法,才能在控制層的save()方法中去調(diào)用服務(wù)層的add()方法,可以添加博客類別的相關(guān)信息,然后持久到數(shù)據(jù)庫(kù)中。部分代碼如下:@RequestMapping("/save") publicStringsave(BlogTypeblogType,HttpServletResponseresponse)throwsException{ intresultTotal=0;//操作的記錄條數(shù) if(blogType.getId()==null){ resultTotal=blogTypeService.add(blogType); }else{ resultTotal=blogTypeService.update(blogType); } JSONObjectresult=newJSONObject(); if(resultTotal>0){ result.put("success",true); }else{ result.put("success",false); } ResponseUtil.write(response,result); returnnull; }3.4.2修改博客類別圖3-4-2修改博客類型時(shí)序圖步驟系統(tǒng)行為描述1博主在博客類別信息管理頁(yè)面選擇要修改的博客類別點(diǎn)擊修改按鈕彈出彈窗2調(diào)用blogType控制層controller的save方法3控制層save方法中調(diào)用service層的update方法4調(diào)用blogTypeMapper持久層將對(duì)應(yīng)的博客類別信息修改5返回成功系修改信息在博客類別管理頁(yè)面先選擇要修改的數(shù)據(jù),然后點(diǎn)擊修改按鈕,隨之則會(huì)打開(kāi)修改博客類別的彈窗,博主可以填寫(xiě)要修改的博客類別名稱和排序,再點(diǎn)擊保存按鈕,則會(huì)提交到Controller的save方法,傳入?yún)?shù):再選擇需要添加的博客類型blogType,再調(diào)用到控制層的方法,則會(huì)在控制層的save()方法中調(diào)用到服務(wù)層的update()方法,才能修改博客類別的有關(guān)信息,持久層到數(shù)據(jù)庫(kù)中。部分代碼如下:@RequestMapping("/save") publicStringsave(BlogTypeblogType,HttpServletResponseresponse)throwsException{ intresultTotal=0;//操作的記錄條數(shù) if(blogType.getId()==null){ resultTotal=blogTypeService.add(blogType); }else{ resultTotal=blogTypeService.update(blogType); } JSONObjectresult=newJSONObject(); if(resultTotal>0){ result.put("success",true); }else{ result.put("success",false); } ResponseUtil.write(response,result); returnnull; }3.4.3刪除博客類別圖3-4-3刪除博客類型時(shí)序圖步驟系統(tǒng)行為描述1博主在博客類別信息管理頁(yè)面勾選上要?jiǎng)h除的博客類別,點(diǎn)擊刪除按鈕2調(diào)用blogType控制層controller的delete方法3控制層delete方法中調(diào)用service層的delete方法4調(diào)用blogTypeMapper持久層將對(duì)應(yīng)的博客類別信息刪除5返回成功刪除信息在博客類別管理的頁(yè)面首先要選上要?jiǎng)h除的數(shù)據(jù),再點(diǎn)擊刪除按鈕,則會(huì)提交到控制層Controller的delete方法,傳入?yún)?shù):需要?jiǎng)h除的博客類型的id(可以是多個(gè)),調(diào)用控制層的方法,在控制層Controller的delete()方法中去調(diào)用服務(wù)層的delete()方法,再刪除博客類別的有關(guān)信息,持久層到數(shù)據(jù)庫(kù)中。部分代碼如下:/** *刪除博客類別信息 *@paramids *@paramresponse *@return *@throwsException */ @RequestMapping("/delete") publicStringdelete(@RequestParam(value="ids")Stringids,HttpServletResponseresponse)throwsException{ String[]idsStr=ids.split(","); JSONObjectresult=newJSONObject(); for(inti=0;i<idsStr.length;i++){ if(blogService.getBlogByTypeId(Integer.parseInt(idsStr[i]))>0){ result.put("exist","博客類別下有博客,不能刪除!"); }else{ blogTypeService.delete(Integer.parseInt(idsStr[i])); } } result.put("success",true); ResponseUtil.write(response,result); returnnull; }3.4.4顯示博客類別圖3-4-4顯示博客類型時(shí)序圖步驟系統(tǒng)行為描述1博主在后臺(tái)系統(tǒng)打開(kāi)博客類別信息管理頁(yè)面就會(huì)調(diào)用查詢方法2調(diào)用blogType控制層controller的list方法3控制層list方法中調(diào)用service層的list方法4調(diào)用blogTypeMapper持久層查詢所有的博客類別信息5返回查詢到的博客類別信息在打開(kāi)博主客類別管理頁(yè)面時(shí),則會(huì)調(diào)用控制層Controller的list方法,傳入需要的參數(shù):當(dāng)前的頁(yè)數(shù)和每頁(yè)的數(shù)量,再去調(diào)用控制層的方法,然后在控制層controller的list()方法中去調(diào)用服務(wù)層的list()方法,從數(shù)據(jù)庫(kù)中可以查詢到博客類別信息,然后可以將博客類別的有關(guān)數(shù)據(jù)添加渲染頁(yè)面上。部分代碼如下:@RequestMapping("/list") publicStringlist(@RequestParam(value="page",required=false)Stringpage,@RequestParam(value="rows",required=false)Stringrows,HttpServletResponseresponse)throwsException{ PageBeanpageBean=newPageBean(Integer.parseInt(page),Integer.parseInt(rows)); Map<String,Object>map=newHashMap<String,Object>(); map.put("start",pageBean.getStart()); map.put("size",pageBean.getPageSize()); List<BlogType>blogTypeList=blogTypeService.list(map); Longtotal=blogTypeService.getTotal(map); JSONObjectresult=newJSONObject(); JSONArrayjsonArray=JSONArray.fromObject(blogTypeList); result.put("rows",jsonArray); result.put("total",total); ResponseUtil.write(response,result); returnnull; }3.5評(píng)論管理模塊3.5.1審核評(píng)論圖3-5-1審核評(píng)論時(shí)序圖博主在后臺(tái)系統(tǒng)打開(kāi)評(píng)論管理頁(yè)面,查看所需要審核的評(píng)論,點(diǎn)擊審核通過(guò)按鈕,調(diào)用controller層的review方法,controller層會(huì)去調(diào)用service層的update()方法,將評(píng)論的狀態(tài)字段改為對(duì)應(yīng)的代表通過(guò)審核的1,如果點(diǎn)擊不通過(guò)那就是2.然后調(diào)用dao層的update()方法持久化到數(shù)據(jù)庫(kù)中,相關(guān)的代碼如下:/** *評(píng)論審核 *@paramcomment *@paramresponse *@return *@throwsException */ @RequestMapping("/review") publicStringreview(@RequestParam(value="ids")Stringids,@RequestParam(value="state")Integerstate,HttpServletResponseresponse)throwsException{ String[]idsStr=ids.split(","); for(inti=0;i<idsStr.length;i++){ Commentcomment=newComment(); comment.setState(state); comment.setId(Integer.parseInt(idsStr[i])); commentService.update(comment); } JSONObjectresult=newJSONObject(); result.put("success",true); ResponseUtil.write(response,result); returnnull; }3.5.2刪除評(píng)論圖3-5-2刪除評(píng)論時(shí)序圖博主可以在后臺(tái)系統(tǒng)中打開(kāi)評(píng)論管理界面,選擇自己將需要?jiǎng)h除的評(píng)論,然后單擊“刪除”按鈕。將去調(diào)用controller層的delete()方法,在當(dāng)中的方法中會(huì)去調(diào)用業(yè)務(wù)邏輯層的方法去實(shí)現(xiàn),然后調(diào)用dao層的方法,最后持久層到數(shù)據(jù)庫(kù)中,相關(guān)的代碼如下:/** *刪除評(píng)論信息 *@paramids *@paramresponse *@return *@throwsException */ @RequestMapping("/delete") publicStringdelete(@RequestParam(value="ids")Stringids,HttpServletResponseresponse)throwsException{ String[]idsStr=ids.split(","); for(inti=0;i<idsSt
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年汽車維修技師專業(yè)能力測(cè)試題庫(kù)
- 豎井鉆機(jī)工安全技能測(cè)試水平考核試卷含答案
- 農(nóng)副土特產(chǎn)品收購(gòu)員崗前技術(shù)突破考核試卷含答案
- 2026年投資經(jīng)理面試考核內(nèi)容與市場(chǎng)分析能力
- 2026年脫硝工作質(zhì)量考核與評(píng)價(jià)標(biāo)準(zhǔn)
- 呼叫中心服務(wù)員崗前崗位水平考核試卷含答案
- 光學(xué)普通磨工崗前班組管理考核試卷含答案
- 2026年工程項(xiàng)目經(jīng)理職位的考題與解析
- 2026年生物科技公司投資經(jīng)理選拔題庫(kù)
- 2026年美團(tuán)平臺(tái)IT運(yùn)維工程師面試寶典及答案
- 雨課堂學(xué)堂在線學(xué)堂云《English for Presentations at International Medical Conferences》單元測(cè)試考核答案
- 馬來(lái)酸酐接枝聚丙烯的研究與應(yīng)用進(jìn)展
- 醫(yī)療機(jī)構(gòu)醫(yī)保數(shù)據(jù)共享管理制度
- 人工智能通識(shí)教程 第2版 課件 第12章 GPT-大語(yǔ)言模型起步
- 形勢(shì)與政策(吉林大學(xué))智慧樹(shù)知到答案2024年吉林大學(xué)
- 大疆無(wú)人機(jī)租賃合同協(xié)議書(shū)
- 網(wǎng)絡(luò)新聞評(píng)論智慧樹(shù)知到期末考試答案章節(jié)答案2024年西南交通大學(xué)
- FreeCAD從入門(mén)到綜合實(shí)戰(zhàn)
- 藥房藥品安全管理月檢查表
- 下潘格莊金礦開(kāi)發(fā)前景分析校正版
- 運(yùn)輸合同普通版
評(píng)論
0/150
提交評(píng)論