版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、1個人博客系統(tǒng)的設(shè)計與實(shí)現(xiàn)年級專業(yè):學(xué)號:姓名:計算機(jī)科學(xué)與技術(shù)學(xué)院摘要:隨著手機(jī)、平板等手持終端訪問設(shè)備的普及,越來越多的用戶希望通過網(wǎng)絡(luò)平臺進(jìn)行互動交流,同時展現(xiàn)自己的個性,傳播自己的思想,而通過個人博客發(fā)布信息是一個使用頻率較高的方式。本課題建立一個交互簡捷的博客系統(tǒng),方便在校學(xué)生發(fā)布信息進(jìn)行交流,可以將個人生活經(jīng)驗或?qū)W習(xí)筆記心得等發(fā)布到系統(tǒng)中,方便其他同學(xué)的查看討論。這能極大地促進(jìn)同學(xué)間思想交流和互動,擴(kuò)大了同學(xué)的交際圈,并且在擴(kuò)大獲取信息的渠道的同時,還能提高學(xué)習(xí)興趣,增加生活情趣。系統(tǒng)使用Java+JSP+Tomcat+MySQL技術(shù)實(shí)現(xiàn)。關(guān)鍵詞:個人博客,Blog,Web應(yīng)用,J
2、SP,MySQL隨著手機(jī)、平板等手持終端訪問設(shè)備的普及,普適計算越來越滲入人們的生活。跟隨發(fā)展的就是個性化服務(wù),如網(wǎng)絡(luò)發(fā)布、簽名、預(yù)約等都被極大地賦予了個人特色,越來越多的用戶希望通過網(wǎng)絡(luò)平臺進(jìn)行互動交流,同時展現(xiàn)自己的個性,傳播自己的思想。著名的網(wǎng)站包括Facebook等。很多人對發(fā)生在自己身邊的事以及對生活的一些感悟愿意用文字或圖片的方式記錄下來發(fā)到網(wǎng)絡(luò)上與他人分享交流,其中通過個人博客發(fā)布是一個使用頻率較高的方式。本課題擬建立一個交互簡捷的博客系統(tǒng),方便在校學(xué)生發(fā)布信息進(jìn)行交流,可以將個人生活經(jīng)驗或?qū)W習(xí)筆記心得等發(fā)布到系統(tǒng)中,方便其他同學(xué)的查看討論交流。1系統(tǒng)設(shè)計指導(dǎo)思想由于系統(tǒng)需要具有
3、普適的特性,因此建立以Web服務(wù)為中心的系統(tǒng)是最優(yōu)的架構(gòu)。使用傳統(tǒng)的B/S架構(gòu)能接納多種終端設(shè)備的訪問,如使用筆記本電腦、臺式計算機(jī)、手機(jī)、平板電腦等設(shè)備。結(jié)合實(shí)際的需要,技術(shù)實(shí)現(xiàn)上將以普通Web結(jié)合Wap的方式實(shí)現(xiàn)系統(tǒng)功能的訪問,并且這兩種技術(shù)架構(gòu)相近,可以統(tǒng)一到Web服務(wù)器中一起管理。2系統(tǒng)需求論述根據(jù)前面的分析與定位,本博客系統(tǒng)主要用于校內(nèi)同學(xué)的使用,因此需求的重點(diǎn)也反映在同學(xué)平時生活中的明顯的和一些潛在的期望。就主要功能來說,核心在于創(chuàng)建自己的博客空間,在博客空間中方便的發(fā)表博文,支持他人在線評論互動,同時能方便地查閱他人的博文并添加評論。同時由于潛在的需求期望增加獲取信息的渠道,系統(tǒng)
4、中增加創(chuàng)建興趣小組的功能,將小組的最新消息自動發(fā)布到組員,并提供小組討論的頁面空間。另外系統(tǒng)提供站內(nèi)信功能,幫助簡化互發(fā)消息的管理,這樣系統(tǒng)能自主控制所有消息,并能保留消息的歷史信息,方便消息維護(hù)。系統(tǒng)的功能性需求如下圖。查看博文創(chuàng)建小組小組交流評論主題瀏覽搜索-評論博文搜索小組vvextend空間信息維護(hù)模塊管理關(guān)鍵字管理分類管理其中各功能性需求簡要說明如下:簡單的系統(tǒng)登入登出及注冊功能在這里不再詳述。其他重要的功能主要集中在博客訪問和博主訪問這兩個角色上,其中博主角色具有博客角色具備的所有的系統(tǒng)功能。博客可以進(jìn)入系統(tǒng)瀏覽查看某博主的博文并回復(fù),或根據(jù)關(guān)鍵字搜索得到相關(guān)的博文信息,另外可以進(jìn)
5、入小組空間查看小組的最新信息,同樣可以利用搜索功能查詢小組中的相關(guān)信息。如果沒有找到相關(guān)主題的小組信息,則可以創(chuàng)建新的小組并接納成員訪問。在小組中可以瀏覽發(fā)帖信息并回帖參與交流。博主角色能操作的功能主要集中于自己的博客空間方面,主要包括:發(fā)布博文管理,空間信息管理,回復(fù)管理,空間模塊管理,外觀方案管理,設(shè)置頭條或置頂管理,分類管理,關(guān)鍵字管理,好友管理,常用鏈接管理,背景音樂管理。這幾個模塊的訪問一般是博客主人身份才能操作。對于系統(tǒng)管理員角色的操作,主要側(cè)重于系統(tǒng)的運(yùn)營與維護(hù)方面的功能。主要包括系統(tǒng)級別的用戶管理、系統(tǒng)級別的博客與小組信息維護(hù)、系統(tǒng)屬性設(shè)置、系統(tǒng)狀態(tài)檢查與監(jiān)測、系統(tǒng)數(shù)據(jù)的導(dǎo)出與
6、導(dǎo)入、系統(tǒng)的啟動與關(guān)閉,具體如下面的用例圖所示。系統(tǒng)狀態(tài)檢查與監(jiān)測系統(tǒng)后臺數(shù)據(jù)維護(hù)3系統(tǒng)分析與設(shè)計基于系統(tǒng)的需求,這個章節(jié)主要陳述分析得出系統(tǒng)的分析模型和設(shè)計模型,從邏輯上理解系統(tǒng)的實(shí)現(xiàn)方式和操作方式。下面敘述中沒有嚴(yán)格按分析和設(shè)計劃分小節(jié),而是大體按照幾個主題進(jìn)行了陳述,將分析結(jié)果與設(shè)計結(jié)果大體連貫起來,后續(xù)的章節(jié)將介紹具體的實(shí)現(xiàn)。3.1系統(tǒng)的總體分析本系統(tǒng)使用常見的三層架構(gòu),即界面表示層、業(yè)務(wù)邏輯層、數(shù)據(jù)持久層。其中表示層的職責(zé)主要集中于處理Web頁面的數(shù)據(jù)顯示、接收用戶輸入和各類操作,屬于整個系統(tǒng)的最前端,但其中沒有系統(tǒng)的操作邏輯,僅僅包含簡單的頁面交互方面的處理邏輯,一般使用JS腳本來
7、生成瀏覽器端的交互邏輯,并使用腳本將輸入數(shù)據(jù)或操作結(jié)果反饋到后臺業(yè)務(wù)邏輯層。3.2分析類的獲取確定了主要的系統(tǒng)用例,接下來需要得出分析類模型,用于評估整個系統(tǒng),也起到了承接分析與啟下設(shè)計的作用。歸納一下系統(tǒng)的功能,并綜合操作特性,得到如下幾個綜合的操作界面類型(這里統(tǒng)一以UI為后綴,表示用戶界面):主頁面(MainUI):是系統(tǒng)的首頁面,主要呈現(xiàn)登錄模塊、搜索模塊、所有博客空間最新更新情況統(tǒng)計、所有小組更新情況統(tǒng)計、推薦的博客與小組的內(nèi)容展示、討論熱烈的話題匯總、博客和小組排行榜、廣告模塊等信息。個人主頁面(UserMainUI):用于用于個人有關(guān)的信息設(shè)置與管理,包括個人博客匯總信息(一個用
8、戶可以有多個博客空間)、創(chuàng)建小組管理、參與小組的最新情況、書簽管理(用于記錄一些常用鏈接)、個人信息管理模塊、搜索模塊、登錄模塊。博客頁面(BlogUI):即個人博客空間,包括個人信息模塊、搜索模塊、登錄模塊、標(biāo)題模塊、書簽?zāi)K、訪客模塊、發(fā)帖信息模塊、近況模塊、推薦小組模塊、推薦博客模塊、通告模塊、廣告模塊(系統(tǒng)內(nèi)用戶發(fā)布、非商業(yè)廣告)。博客管理主頁面(BlogMgmtUI):用于對當(dāng)前博客空間進(jìn)行設(shè)置,包括標(biāo)題設(shè)置、界面設(shè)置、模塊設(shè)置、訪問性設(shè)置、發(fā)帖設(shè)置、回復(fù)設(shè)置、訪客信息管理模塊。小組主頁面(GroupUI):主要呈現(xiàn)某小組的信息,包括標(biāo)題、簡介、空間發(fā)帖、成員、搜索模塊、登錄模塊、提
9、示欄個人信息顯示模塊、近況模塊、推薦小組模塊、推薦博客模塊、通告模塊、廣告模塊(系統(tǒng)內(nèi)用戶發(fā)布、非商業(yè)廣告)。小組管理主頁面(GroupMgmtUI):用于小組內(nèi)的信息管理。包括標(biāo)題設(shè)置、界面設(shè)置、成員及訪問性設(shè)置、發(fā)帖設(shè)置、回復(fù)設(shè)置。搜索頁面(SearchUI):主要用于站內(nèi)的信息搜索,包括用戶、博客空間、小組、主題、關(guān)鍵字、一般包含信息的搜索及其結(jié)果。系統(tǒng)管理頁面(AdminUI):匯總了系統(tǒng)的管理功能,包括系統(tǒng)開關(guān)機(jī)模塊、系統(tǒng)屬性設(shè)置模塊、系統(tǒng)數(shù)據(jù)管理模塊、系統(tǒng)用戶管理模塊、狀態(tài)顯示模塊、統(tǒng)計信息模塊??刂祁惖淖饔眉畜w現(xiàn)了系統(tǒng)的業(yè)務(wù)邏輯,因此最終的控制類大部分都映射到了業(yè)務(wù)邏輯層,根據(jù)
10、用例模型中的系統(tǒng)功能性描述,經(jīng)過統(tǒng)籌安排,得出系統(tǒng)中的控制類如下:登錄控制類(LoginWorkflow):專門負(fù)責(zé)登錄的控制邏輯。登出控制類(LogoutWorkflow):針對登出系統(tǒng)專門進(jìn)行處理。雖然網(wǎng)頁型訪問一般設(shè)有30分鐘會話有效期,但這里還是單獨(dú)進(jìn)行處理,保證數(shù)據(jù)的一致性。注冊控制類(RegisterWorkflow):專門處理新用戶注冊的問題。查找功能在各個對象上都有體現(xiàn),最終界面將分類顯示,因此查找功能這樣組織:綜合查找控制類(FindWorkflow):用于統(tǒng)一各類查詢及匯總各查詢結(jié)果。小組查詢(FindGroupWorkflow):針對小組進(jìn)行篩選查詢的控制類。用戶查詢(F
11、indUserWorkflow):用于對用戶進(jìn)行各類信息進(jìn)行篩選查詢。博客空間查詢(FindBlogWorkflow):基于輸入值查詢滿足條件的博客空間。發(fā)帖查詢(FindItemWorkflow):針對發(fā)帖回帖進(jìn)行篩查,可以對博客空間和小組內(nèi)的發(fā)帖同時篩選。針對發(fā)帖管理的控制類組織為發(fā)帖、顯示、回復(fù)三個控制類。創(chuàng)建新帖控制類(CreateItemWorkflow):博客空間和小組空間里面使用相同的控制邏輯,因此統(tǒng)一為CreateItemWorkflow控制類,不同的就是發(fā)往的空間不同而已。顯示發(fā)帖控制類(ListItemWorkflow):針對顯示自定義的要求較多,因此單獨(dú)設(shè)計顯示控制邏輯,
12、在博客空間和小組空間中使用相同的控制類,最終顯示在界面類中加工生成不同的頁面風(fēng)格?;靥刂祁?ReplyItemWorkflow):用于管理回帖的過程控制,與創(chuàng)建新帖很相近,但地位不同。另外幾個控制類集中于管理功能,包括:發(fā)帖條目的管理控制類(ItemMgmtWorkflow):對空間中所有的發(fā)帖進(jìn)行管理的控制類,體現(xiàn)在對條目的增刪改查,對回復(fù)的管理,附加信息以及狀態(tài)的管理。博客管理控制類(BlogMgmtWorkflow):對博客空間的信息進(jìn)行配置,對各模塊進(jìn)行配置與顯示,以及置頂發(fā)帖、管理鏈接關(guān)鍵字、背景音樂處理等。小組管理控制類(GroupMgmtWorkflow):針對小組的各管理功能
13、,包括設(shè)置小組狀態(tài)、批復(fù)加入請求、任命管理者、發(fā)帖管理等。用戶管理控制類(UserMgmtWorkflow):針對用戶自身進(jìn)行管理,包括更改信息,管理好友等操作。系統(tǒng)管理控制類(SysMgmtWorkflow):所有針對系統(tǒng)的管理和操作都納入這個控制類中,當(dāng)然設(shè)計階段可以對設(shè)計類進(jìn)行調(diào)整,劃分出分角色的管理類實(shí)現(xiàn)。3.3系統(tǒng)關(guān)鍵抽象概念的獲取與分析下面分析系統(tǒng)的領(lǐng)域模型。在這個系統(tǒng)中領(lǐng)域模型的重要作用是顯而易見的,所有用戶都圍繞著這個模型在工作。匿名用戶可以瀏覽系統(tǒng)中的各種信息,包括瀏覽博客空間和小組空間的信息;普通博客可以查看其它博客空間的信息,并能夠進(jìn)入小組進(jìn)行討論;而博主則可以在自己的博
14、客空間發(fā)布博文并進(jìn)入小組討論,所有人都在圍繞領(lǐng)域模型瀏覽信息或操作信息。因此根據(jù)前面的假設(shè)和擴(kuò)展,初步得出下面的領(lǐng)域模型結(jié)構(gòu)。4成員f分熒an+父分崟01博客空間樂主.元衛(wèi)屁訪R迪址小組怎小爼宕稱樂小爼訪何迪址館小組跑主豐,豈當(dāng)旳狀態(tài)宅主題名稱小組發(fā)帖弘較表時醫(yī)用戶腸評論時三分類狀態(tài)1博文分類回帖根據(jù)前述需求,一個用戶可以創(chuàng)建多個博客空間,并可以發(fā)布多條博文,每條博文具有一個特定的主題,并且可以具有多個分類關(guān)系,可以包含多條回復(fù)的評論,并且具有一個特定的狀態(tài)。用戶可以創(chuàng)建一個小組,并且小組可以加入多個用戶,小組中可以發(fā)帖、回帖。由于博客空間和小組內(nèi)的消息發(fā)布在操作和結(jié)構(gòu)的性質(zhì)上是一致的,不同之
15、處在于小組內(nèi)任何人都可以發(fā)帖,而博客空間內(nèi)只允許博主發(fā)帖,這在設(shè)計實(shí)現(xiàn)中只要檢查當(dāng)前是博客還是小組,操作者是否擁有當(dāng)前博客空間即可解決權(quán)限問題,因此在系統(tǒng)設(shè)計中將兩者統(tǒng)一處理,將消息發(fā)布對象統(tǒng)稱為發(fā)帖條目(PostItem),回復(fù)統(tǒng)一為回帖條目(Replyltem)。每個發(fā)帖條目關(guān)聯(lián)一個主題(Subject),并具有零到多個關(guān)鍵字(分類)(Keyword)。當(dāng)然發(fā)帖條目有不同的狀態(tài)(Status),如草稿、扣留發(fā)布、正常發(fā)布、置頂發(fā)布、隱藏、刪除、允許回復(fù)、禁止回復(fù)。另外博客博主僅僅在檢查操作時有區(qū)分權(quán)限的關(guān)系,因此將兩者統(tǒng)一為用戶(User)。用戶新建發(fā)帖后,鍵入的內(nèi)容自動保存,此時發(fā)帖屬于
16、草稿狀態(tài);編輯完成點(diǎn)擊發(fā)布后,發(fā)帖進(jìn)入待發(fā)布狀態(tài);進(jìn)入待發(fā)布狀態(tài)的帖子由系統(tǒng)自動判斷是否有違規(guī)定的地方,進(jìn)入審批狀態(tài),結(jié)果若通過則進(jìn)入發(fā)布狀態(tài),若未通過則進(jìn)入待發(fā)布狀態(tài),此時用戶可以繼續(xù)編輯或丟棄帖子,因此在待發(fā)布狀態(tài)下的帖子都是沒有審核通過的帖子;處于發(fā)布狀態(tài)的帖子是可以顯示在空間里面的,當(dāng)然如果用戶選擇隱藏則不顯示在空間內(nèi);超過時限的帖子則進(jìn)入存檔狀態(tài),存檔狀態(tài)下的帖子都將被移到到備份庫中壓縮存儲。3.4分析類交互下面選取一個簡單的登錄過程和發(fā)布帖子這兩個用例來說明分析類的交互過程分析。登錄過程在所有系統(tǒng)中都有體現(xiàn)。一般在操作的設(shè)計中,首次登錄的時候只需要輸入用戶標(biāo)識和密碼即可登錄,當(dāng)用戶
17、名或密碼不正確時,在后續(xù)的界面上加入驗證碼來防止破解攻擊,多次無效后(一般控制在10次)賬戶便被鎖定。本系統(tǒng)中由于沒有太大的安全性需求,因此即使多次登錄失敗賬戶也不需要鎖定,只需加入驗證碼即可。下面分析發(fā)布帖子的交互過程。界面中使用CKEditor控件可以完成文字修飾、上傳圖片及編排版式的功能,最終在瀏覽器上生成一個HTML的描述文本,提交后服務(wù)器端接收這個HTML描述文本,設(shè)計中將這個描述文本直接存入數(shù)據(jù)庫中即可。瀏覽帖子的時候只要取出此描述文本放入頁面中即可顯示原先編輯好的效果。提交此數(shù)據(jù)后,首先確認(rèn)并檢查用戶權(quán)限,是否可以發(fā)帖,通過后將發(fā)帖內(nèi)容交給系統(tǒng)檢查,這里由ItemChecker接
18、口來完成檢查工作,最終設(shè)計中只要實(shí)現(xiàn)這個接口就可以完成多種檢查方法。檢查通過后,發(fā)帖內(nèi)容存入數(shù)據(jù)庫,同時用戶可以瀏覽最終的效果。4系統(tǒng)設(shè)計整個系統(tǒng)使用Java語言作為開發(fā)的基礎(chǔ)語言,Web界面部分搭配使用HTML、CSS、J送JS以及JSP技術(shù)來實(shí)現(xiàn)。最終發(fā)布的系統(tǒng)對平臺沒有特別大的強(qiáng)制要求,因為基于Java開發(fā)的Web型服務(wù)項目,可以選用流行的Tomcat服務(wù)器搭建,這些都是開源免費(fèi)的平臺。數(shù)據(jù)庫可以使用MySQL數(shù)據(jù)庫,它也是免費(fèi)使用的數(shù)據(jù)庫,很多大型網(wǎng)站都選用了MySQL作為自己的數(shù)據(jù)庫支持平臺。開發(fā)過程中,選擇平臺搭建于Windows系統(tǒng)下,當(dāng)然發(fā)布時可以選擇Windows平臺或Lin
19、ux平臺,兩者的環(huán)境下都有上述的開源軟件。硬件平臺沒有強(qiáng)制性要求。4.1系統(tǒng)數(shù)據(jù)庫的結(jié)構(gòu)設(shè)計根據(jù)前面的需求描述及領(lǐng)域模型的系統(tǒng)關(guān)鍵數(shù)據(jù)抽象,分析得出系統(tǒng)的數(shù)據(jù)庫表結(jié)構(gòu)如下面的關(guān)系圖所示,其中基本表(Table)用于記錄底層的核心的信息。另外,必須基于基本表在其上層創(chuàng)建一些視圖(View)以方便某些角度的數(shù)據(jù)的操作。整體的邏輯結(jié)構(gòu)如圖所示:數(shù)據(jù)庫表的總體關(guān)系圖5系統(tǒng)實(shí)現(xiàn)系統(tǒng)實(shí)現(xiàn)中,主要是根據(jù)設(shè)計模式實(shí)現(xiàn)其中定義的方法和功能即可。在軟件項目中實(shí)現(xiàn)的工作量比設(shè)計要輕很多,這里選取之前的介紹的登錄實(shí)現(xiàn)與發(fā)帖相關(guān)部分的實(shí)現(xiàn)來介紹具體實(shí)現(xiàn)過程。5.1登錄的實(shí)現(xiàn)登錄頁面的實(shí)現(xiàn)首先是判斷登錄名和密碼是否為空,
20、如果都不為空,提交給UserServlet處理,并且連接數(shù)據(jù)庫并判斷post傳過來的數(shù)值內(nèi)容是否與數(shù)據(jù)庫中的內(nèi)容一致,如果一致就允許用戶登錄相應(yīng)界面。頁面組件HTML代碼組織如下:div用戶登錄/pStringmessage=(String)request.getAttribute(message);If(message!=null)out.print(fontcolor二red+message+/trtrtd密碼/tdtdinputname=passwordtype=passwordid=password/td/trtr0)user=(User)list.get(0);HttpSession
21、session=request.getSession();session.setAttribute(user,user);request.getRequestDispatcher(/main.jsp).forward(request,response);elserequest.setAttribute(message,用戶名或密碼不正確);request.getRequestDispatcher(/login.jsp).forward(request,response);/退出publicvoidlogout(HttpServletRequestrequest,HttpServletRespo
22、nseresponse)throwsServletException,IOExceptionHttpSessionsession=request.getSession();session.invalidate();response.sendRedirect(/main.jsp);/修改密碼publicvoidchangePassword(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOExceptionStringoldPassword=request.getParameter(old
23、Password);StringnewPassword=request.getParameter(newPassword);StringreNewPassword=request.getParameter(reNewPassword);HttpSessionsession=request.getSession();Useruser=(User)session.getAttribute(user);if(!user.getPassword().equals(oldPassword)request.setAttribute(message,您輸入的原密碼錯誤);request.getRequest
24、Dispatcher(/result.jsp).forward(request,response);elseif(newPassword.equals(reNewPassword)Stringsql=updatet_usersetpassword=?whereid=?;Stringparams=newPassword,user.getId().toString();QueryRunnerqr=DbHelper.getQueryRunner();tryqr.update(sql,params);catch(SQLExceptione)e.printStackTrace();response.se
25、ndRedirect(/main.jsp);elserequest.setAttribute(message,兩次輸入密碼不一致);request.getRequestDispatcher(/reult.jsp).forward(request,response);5.2發(fā)帖的實(shí)現(xiàn)帖子的基本信息設(shè)置項分為幾部分內(nèi)容,核心包括如下部分。privateintid;privateStringtitle;privateStringcontent;privateDatecreateDate;privateStringcategoryName;privateIntegercategoryId;發(fā)帖前的驗證
26、工作由下面代碼實(shí)現(xiàn)。publicclassPreAddBlogServletextendsHttpServletprivatestaticfinallongserialVersionUID=-4836172756151206293L;publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOExceptionlist(request,response);publicvoidlist(HttpServletRequestrequest,HttpServletResp
27、onseresponse)throwsServletException,IOExceptionHttpSessionsession=request.getSession();if(session=null)response.sendRedirect(/login.jsp);elseStringsql=selectid,content,rankfromt_keywordorderbyrankdesc,iddesc;QueryRunnerqr=DbHelper.getQueryRunner();Listlist=null;trylist=(List)qr.query(sql,newBeanList
28、Handler(Category.class);catch(SQLExceptione)e.printStackTrace();request.setAttribute(list,list);request.getRequestDispatcher(/addItem.jsp).forward(request,response);具體發(fā)帖操作由如下代碼實(shí)現(xiàn)。publicclassAddBlogServletextendsHttpServletprivatestaticfinallongserialVersionUID=1L;protectedvoiddoGet(HttpServletReques
29、trequest,HttpServletResponseresponse)throwsServletException,IOExceptiondoPost(request,response);protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOExceptionrequest.setCharacterEncoding(utf-8);HttpSessionsession=request.getSession();if(session=null)resp
30、onse.sendRedirect(/login.jsp);elseStringtitle=request.getParameter(title);Stringcontent=request.getParameter(content);Log.println(title);Log.println(content);intresult=0;Stringsql=insertintot_postitem(title,content)values+(?,?);Stringparams=title,content;QueryRunnerqr=DbHelper.getQueryRunner();tryre
31、sult=qr.update(sql,params);/query()catch(SQLExceptione)e.printStackTrace();Stringmessage=;if(result=0)message二添加帖子失??;elsemessage二添加帖子成功;request.setAttribute(message,message);request.getRequestDispatcher(/result.jsp).forward(request,response);5.3查看帖子模塊查看發(fā)帖包括查看所有發(fā)帖和按發(fā)帖編號查看一篇帖子,相關(guān)操作提交給HomeServlet執(zhí)行。pub
32、licclassHomeServletextendsHttpServletprivatestaticfinallongserialVersionUID=-481044148316500873L;publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOExceptionrequest.setCharacterEncoding(utf-8);Stringmethod=request.getParameter(method);if(method=null)main(r
33、equest,response);request.getRequestDispatcher(/main.jsp).forward(request,response);elseif(method.equals(get)main(request,response);get(request,response);request.getRequestDispatcher(/displayItems.jsp).forward(request,response);/根據(jù)id讀取一篇帖子publicvoidget(HttpServletRequestrequest,HttpServletResponseres
34、ponse)throwsServletException,IOExceptionStringid=request.getParameter(id);QueryRunnerqr=DbHelper.getQueryRunner();Stringsql=selectid,title,content,createdatefromt_postitemwheried=+id;/根據(jù)id讀取一篇帖子PostItemitem=null;tryListlist=(List)qr.query(sql,newBeanListHandler(PostItem.class);item=(PostItem)list.ge
35、t(0);catch(SQLExceptione)e.printStackTrace();/根據(jù)id讀取帖子所有評論sql=selectid,username,content,createdtimefromt_replyitem+whereitem_id=+id+orderbyiddesc;ListcommentList=null;trycommentList=(List)qr.query(sql,newBeanListHandler(Comment.class);catch(SQLExceptione)e.printStackTrace();request.setAttribute(post
36、item,item);request.setAttribute(commentList,commentList);/讀取所有帖子publicvoidmain(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOExceptionStringcid=request.getParameter(cid);Stringsql=null;if(cid=null)sql=selectb.idasid,title,content,createdate,+nameascategoryname,c.idascategoryid+fromt_blogb,t_keywordcwhereb.id=c.id+orderbyb.iddesclimit0,4;elsesql=selectb.idasid,title,content,createdate,+nameascategoryname,c.idascategoryid+fromt_blogb,t_keywordcwhereb.id=+cid+orderbyb.iddesclimit0,4;/DButils中核心類,生成對象時傳遞數(shù)據(jù)源對象QueryRunnerqr=DbHelper.getQu
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度國土土地征收補(bǔ)償聘用合同范本
- 二零二四年度企業(yè)對外委托業(yè)務(wù)合同范本3篇
- 2025年度集裝箱物流運(yùn)輸合同規(guī)范文本(正本版)
- 2025年度滑雪教練個人品牌合作與推廣合同
- 二零二四淘寶年度虛擬現(xiàn)實(shí)購物體驗合同
- 2025年度多式聯(lián)運(yùn)綜合服務(wù)合同模板
- 2025年度企業(yè)年會場地租賃及配套服務(wù)合同范本
- 2025年度航空維修配件采購與供應(yīng)合同
- 2025年度國際貿(mào)易貨物檢驗檢疫合同范本
- 2025年度腳手架租賃與現(xiàn)場監(jiān)管服務(wù)合同4篇
- 《電子技術(shù)基礎(chǔ)(第二版)》中職技工全套教學(xué)課件
- 五年級上冊美術(shù)《傳統(tǒng)門飾》課件
- DL∕T 1309-2013 大型發(fā)電機(jī)組涉網(wǎng)保護(hù)技術(shù)規(guī)范
- 城鄉(xiāng)低保待遇協(xié)議書
- DL-T5153-2014火力發(fā)電廠廠用電設(shè)計技術(shù)規(guī)程
- 華為HCIA-Storage H13-629考試練習(xí)題
- 遼寧省撫順五十中學(xué)2024屆中考化學(xué)全真模擬試卷含解析
- 2024年中國科學(xué)技術(shù)大學(xué)少年創(chuàng)新班數(shù)學(xué)試題真題(答案詳解)
- 煤礦復(fù)工復(fù)產(chǎn)培訓(xùn)課件
- 眼科疾病與視覺健康
- 2024年九省聯(lián)考高考數(shù)學(xué)卷試題真題答案詳解(精校打?。?/a>
評論
0/150
提交評論