【正文】
........ 11 運(yùn)行環(huán)境要求 ........................................... 11 硬件環(huán)境 ............................................... 12 軟件環(huán)境 ............................................... 12 第 3 章 總體設(shè)計(jì) ............................................... 13 功能模塊劃分 ........................................... 13 數(shù)據(jù)庫設(shè)計(jì) ............................................. 13 person 用戶表 .......................................... 14 space 空間信息 表 ....................................... 15 post 日志表 ............................................ 15 category 分類表 ........................................ 16 II reply 日志評(píng)論表 ....................................... 16 ment 留言表 ......................................... 16 link 超鏈接表 .......................................... 17 系統(tǒng)架構(gòu) ............................................... 17 系統(tǒng)運(yùn)行機(jī)制 ........................................... 18 第 4 章 系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn) ..................................... 20 類的設(shè)計(jì)與實(shí)現(xiàn) ......................................... 20 Java Bean 類的設(shè)計(jì) ..................................... 20 通用類的設(shè)計(jì) ........................................... 21 數(shù)據(jù)庫與 Hibernate 配置 ................................. 22 Struts 2 配置 .......................................... 22 模塊詳細(xì)設(shè)計(jì)與實(shí)現(xiàn) ..................................... 23 登錄與注冊(cè)模塊 ......................................... 23 日志管理模塊 ........................................... 24 日志評(píng)論模塊 ........................................... 30 分類模塊 ............................................... 31 留言模塊 ............................................... 33 系統(tǒng)配置 ............................................... 34 第 5 章 結(jié) 論 .................................................. 36 參考文獻(xiàn) ...................................................... 38 致 謝 ....................................... 錯(cuò)誤 !未定義書簽。s popular Web frontend development technologies JavaScript, etc. The system is based on B / S structure, to use JAVA language, MySQL database and Tomcat Server. Combined with a powerful opensource JAVA framework for Struts 2 and Hibernate as a development framework, thus ensuring the entire system is stable, fast, and efficient. Key words: Blog, MVC, B/S, stable 1 前 言 隨著互聯(lián)網(wǎng)技術(shù)的高速發(fā)展和日益的普及,互聯(lián)網(wǎng)用戶迅速增加,用戶對(duì)互聯(lián)網(wǎng)的寄托也發(fā)生了翻天覆地的變化,用戶不甘于只單單的被動(dòng)的接受 互聯(lián)網(wǎng)提供的內(nèi)容,更希望能夠加入到內(nèi)容制造的大家庭中,這時(shí)傳統(tǒng)的 Web 應(yīng)用已經(jīng)顯得力不從心,而 Web 的出現(xiàn),極大的改變了這一局面。 Web 和傳統(tǒng) Web 應(yīng)用相比,有一個(gè)非常顯著的特點(diǎn),即:實(shí)時(shí)性和較高的交互性,正是因?yàn)檫@一實(shí)時(shí)性和較高的交互性,傳統(tǒng)的互聯(lián)網(wǎng)開發(fā)技術(shù)也面臨的嚴(yán)峻的挑戰(zhàn)。縱觀各種解決方案 ,最終選擇 JAVA 作為博客系統(tǒng)的技術(shù)路線。本系統(tǒng)采用現(xiàn)今流行的 MVC 設(shè)計(jì)模式,從而使整個(gè)系統(tǒng)的架構(gòu)更加清晰。 。它具有體積小,功能強(qiáng),使用簡 便,管理方便,運(yùn)行速度快,安全可靠性高 ,尤其是開源這一特點(diǎn),所以很多企業(yè)為了降低網(wǎng)站總體擁有成本而選擇了 MySQL 作為網(wǎng)絡(luò)數(shù)據(jù)庫。使用MVC 應(yīng)用程序被分成三個(gè)核心部件:模型、視圖、控制器。例如,很多數(shù)據(jù)可能用 HTML 來表示,但是也有可能用 WAP 來表示,而這些表示所需要的僅令是改變視圖層的實(shí)現(xiàn)方式,而控制層和模型層無需做任何改變?;蛘哒f, WebWork 衍生出了 Struts 2,而不是 Struts 1 衍生了 Struts2。 Hibernate 的核心接口一共有 5 個(gè),分別為 :Session、 SessionFactory、 Transaction、 Query 和 Configuration[5]。 基本功能要求 系統(tǒng)提供的主要功能包 括以下幾個(gè)方面 : 1. 博主的注冊(cè)和登錄 2. 日志的發(fā)布和管理 ,包括日志管理和分類選擇功能,其中日志管理功能包括日志的 添加、刪除和修改 ,分類選擇功能包括分類的添加、刪除和修改。 3. 博主 此類用戶即為擁有博客的用戶,是注冊(cè)用戶的一種特例,有管理博客的權(quán)限。 發(fā)表留言 :對(duì)瀏覽過的博客空間進(jìn)行留言,由于注冊(cè)用戶具有身份標(biāo)識(shí),所以在留言時(shí)可以自己身份或匿名身份進(jìn)行留言。 日志管理 :對(duì)系統(tǒng)中的所有日志進(jìn)行管理,管理員可通過日志標(biāo)題進(jìn)行搜索,管理員本身也可以發(fā)表日志,還可以對(duì)違法違規(guī)日志進(jìn)行刪除。 圖 31 系統(tǒng)總體功能模塊圖 系統(tǒng)博客首頁:系統(tǒng)博客首頁主要是對(duì)所有用戶的博客信息進(jìn)行按照一些的排序方式進(jìn)行統(tǒng)一展現(xiàn)。而數(shù)據(jù)庫也是和系統(tǒng)交互, 將結(jié)果統(tǒng)一給 WEB 服務(wù)器返回給用戶瀏覽器。其他類為次要,在此不另外說明。 ? Link Bean 用來保存超鏈接的信息,包括 :超鏈接 ID,超鏈接標(biāo)題,超鏈接內(nèi)容和超鏈接所屬空間。 注冊(cè)頁面如圖 42 所示 : 圖 42 注冊(cè)頁面 24 登錄功能的操作流程為根據(jù)用戶所填寫的登錄信息去用戶表里查詢,如果有該記錄,則說明登錄成功,然后根據(jù)用戶 ID 從空間信息表里取出信息,最后初始化用戶信息和用戶空間信息 ,登錄成功就跳轉(zhuǎn)到用戶博客首頁。 //登錄錯(cuò)誤 ,仍返回登錄頁面 } else { ().getSession(true).setAttribute(account, account)。 Transaction tx = ()。 Category c = (ame, sid)。 ((dt))。 private String ame。 CategoryDao dao = new CategoryDaoHibernate()。 //獲取 post對(duì)象 (title)。 //獲取 post的 id public String execute() { Integer pid = (id)。 //刪除 post ()。 Reply reply = new Reply()。 //將時(shí)間保存到評(píng)論 (reply)。 Category c = new Category()。 //將空間對(duì)象保存到分 類 (c)。 Transaction tx = ()。 String ip = (String)().getRemoteAddr()。 return addCategorySuccess。 //將名稱保存到分類 32 List list = (List)().getSession(true).getAttribute(slist)。 return addReplySuccess。 //將內(nèi)容保存到評(píng)論 (rname)。 } } 根 據(jù) I D 查 詢 日 志是 否 存 在 所 查 日 志刪 除 日 志 記 錄是否30 日志評(píng)論模塊 日志評(píng)論也就是對(duì)博主發(fā)表的日志進(jìn)行評(píng)論 ,評(píng)論者可以是任何人 ,評(píng)論者進(jìn)行評(píng)論時(shí)就會(huì)在數(shù)據(jù)庫評(píng)論表中留下一條記錄 ,評(píng)論者評(píng)論時(shí)需要留下用戶名 ,評(píng)論后系統(tǒng)會(huì)自動(dòng)記錄評(píng)論的時(shí)間和 IP 地址。 Session session = ().getCurrentSession()。 (category)。 //通過分類名找到分類對(duì)象 Integer cid = ()。 public String execute() throws Exception{ Post post=null。 //將 post對(duì)象保存 ()。 Category category = (Category) (, new Integer(cid))。 //定義一個(gè) Post類型的對(duì)象 post (title)。 //登錄成功 ,返回登錄成功頁面 } } } 日志管理模塊 日志管理模塊主要包括的功能有對(duì)日志的添加,修改,刪除,查詢,詳 細(xì)情況如下 : 在添加日志時(shí)首先選擇日志所屬的分類,選擇分類后再向日志表中插入日志內(nèi)容,日志內(nèi)容包括日志標(biāo)題,內(nèi)容,添加內(nèi)容部分采用現(xiàn)今流行的 HTML 編輯器 ckeditor。 //從登錄頁面接收 到帳號(hào) private String password。 HibernateSessionFactoryUtil 代碼如下 所示 : public class HibernateSessionFactoryUtil { private static SessionFactory sessionFactory。 Java Bean 類圖如下 41 所示 (圖中省略了 getter()和 setter()方法 ): 圖 41 Java Bean 類圖 i d : I n t e g e r a c c o u n t : S t r i n g p a s s w o r d : S t r i n g n a m e : S t r i n g e m a i l : S t r i n g s e x : S t r i n g d a t e C r e a t e d : S t r i n g i p C r e a t e d : S t r i n