【正文】
添 加 新 聞2 : 顯 示 新 聞 條 目添 加 控 制 器4 : 返 回 更 新 后 的 信 息 圖 35 添加新聞活動順序圖 精品文檔 值得下載 頂 層 包 : : 用 戶欄 目 管 理 頁 面1 : 管 理 欄 目修 改 欄 目2 : 修 改 欄 目3 : 修 改 成 功刪 除 欄 目4 : 刪 除 欄 目5 : 刪 除 成 功添 加 欄 目6 : 添 加 欄 目 圖 36 欄目管理活動順序圖 頂 層 包 : : 用 戶添 加 欄 目1 : 欄 目 管 理欄 目 管 理2 : 顯 示 欄 目3 : 添 加 欄 目4 : 添 加 成 功添 加 控 制 圖 37 添加欄目活動順序圖 小結 本章 從用戶的角度,分析了系統(tǒng)的需求用例,畫出了系統(tǒng)用例模型圖,并得出了相應的用例文檔;做出了用例驅動分析,并得出了相應的順序圖。具體模式圖如圖 41。 在本系統(tǒng)中,根據(jù)第 3 章中對系統(tǒng)需求用例的分析,可以總結出如下的需求集 : ( 1)系統(tǒng)應該分為前臺和后臺; ( 2)系統(tǒng)前臺應該可以顯示新聞欄目和新聞以及用于管理員登錄系統(tǒng)后臺的登錄界面; ( 3)一般用戶應該可以在前臺自由瀏覽新聞,包括選擇性地瀏覽新聞即先選擇新聞欄目再瀏覽新聞欄目下的新聞條目;用戶在瀏覽新聞時,系統(tǒng)應該可以將顯示給用戶一個包含新聞具體內容的 HTML 文件; ( 4)系統(tǒng)管理員應該可以登錄到系統(tǒng)后臺; ( 5)系統(tǒng)管理員應該可以對新聞 欄目和新聞進行查看、修改、刪除和添加操作。 精品文檔 值得下載 視圖層設計 前臺設計 當一個用戶瀏覽新聞系統(tǒng)時,首先進入系統(tǒng)前臺界面。而對于一般用戶來說,他們也不會感覺這有何不妥,因為此登錄界面比 較簡潔,并不會影響用戶正常地閱讀新聞。 然后,用戶可以對自己比較關心和感興趣的新聞進行有選擇性地瀏覽,這時新聞欄目便起作用了。此界面主要是面向管理員的,界面要設計得簡潔方便,使得系統(tǒng)管理員在管理系統(tǒng)時容易操作。 精品文檔 值得下載 再次,再往下就是系統(tǒng)新聞列表,與前臺新聞顯示類似,只是多了對 新聞的操作(修改和刪除)。管理員可以在系統(tǒng)后臺主頁面中看到剛剛發(fā)表的新聞,可以對其進行相關操作,如圖 45。 如果管理員想要添加新聞欄目,只需點擊“添加欄目”,就可以被鏈接到添加新聞欄目頁面(因為此頁面比較簡單,所以并未給出具體設計圖),添加欄目完成后,管理員可以在欄目 管理主頁面的欄目列表中找到新添加的欄目,并對其進行相關操作,如圖 46。其相應的功能模型如下圖 47。 M a i n P a g e用 戶A d d N e w s P a g eE d i t N e w s S e r v l e tD e l e t e N e w s S e r v l e t+ a d d ( ) : v o i d+ m o d i f y ( ) : v o i d+ d e l e t e ( ) : v o i dN e w s M g r+ g e t I d ( ) : i n t+ g e t T i t l e ( ) : s t r i n g+ . . . ( ) i d : i n t t i t l e : s t r i n g . . .N e w sA d d N e w s S e r v l e t 圖 48 新聞管理靜態(tài)模型圖 根據(jù)上面的新聞管理模型,我們可 以對各個類的責任和功能進行說明。所以登錄控制器必須對用戶登錄信息進行識別,判斷其是否有權限登錄到后臺系統(tǒng)。新聞管理靜態(tài)類圖如圖 411。 C l a s s M a n a g e P a g e用 戶A d d C a t e g o r y P a g e+ E d i t C a t e g o r y ( ) d o P o s t ( ) : v o i dE d i t C a t e g o r y S e r v l e t+ D e l e t e C a t e g o r y S e r v l e t ( ) d o G e t ( ) : v o i dD e l e t e C a t e g o r y S e r v l e t+ a d d ( ) : v o i d+ m o d i f y ( ) : v o i d+ d e l e t e ( ) : v o i dC a t e g o r y M g r+ g e t I d ( ) : i n t+ g e t N a m e ( ) : s t r i n g+ s e t I D ( ) : v o i d+ s e t N a m e ( ) : v o i d i d : i n t n a m e : s t r i n gC a t e g o r y+ A d d C a t e g o r y S e r v l e t ( )+ d o P o s t ( ) : v o i dA d d C a t e g o r y S e r v l e t 圖 412 欄目管理靜態(tài)模型圖 精品文檔 值得下載 根據(jù)圖 412 欄目管理靜態(tài)模型設計,對各個類 的責任和功能進行說明。 通過系統(tǒng)功能分析,針對一般新聞用戶的需求,總結出如下需求信息: ( 1)每個新聞對應一個 HTML 文件; ( 2)每個新聞只能對應一個新聞欄目; ( 3)每個欄目下可以有多個新聞。 數(shù)據(jù)庫概念設計 根據(jù)上面的數(shù)據(jù)庫需 求分析,就可以構造出各種實體,以及并根據(jù)它們的關系繪制出實體間的 ER 圖 [8],為以后的邏輯設計打下基礎。 新聞發(fā)布系統(tǒng)的數(shù)據(jù)庫中各表的設計結果如下面幾個表所示。當有多個 用戶連接系統(tǒng)的時候,在同一時間有可能會不止一個用戶需要數(shù)據(jù)庫連接,在這種情況下,系統(tǒng)開銷也是相當大的。如果采 用傳統(tǒng)的數(shù)據(jù)庫鏈接模式,那么對于每一個閱讀新聞的用戶,當他讀取新聞時,系統(tǒng)都要為他建立一次數(shù)據(jù)庫連接,而當他退出新聞閱讀時,系統(tǒng)釋放數(shù)據(jù)庫鏈接,那么,系統(tǒng)的數(shù)據(jù)庫連接是非常頻繁的。當用戶使用完后再把連接對象放回連接池中,以節(jié) 省重新建立連接對象所花費的時間。另外,同一個連接對象如果被使用的次數(shù)太多,可能會導致該連接對象的不穩(wěn)定。該連接池組件由兩個 Java 類 —— ConnectionObject 和 ConnectionPool 和一個數(shù)據(jù)庫連接配置文件( )構成。通過本章,系統(tǒng)設計出了用來完成系統(tǒng)用例的業(yè)務功能模型以及完成各個用例的類。 公共頁面 是一個包含頁面,它包含了一些其 它頁面可能經常用到的JavaBean 包以及一些在其它頁面中常用到的參數(shù)。 String tablebgcolor = 336699。 String trbgco。 String tdbgcolor = FFFFFF。charset=UTF8% !開始導入 packages % page import=.*,.*,.*% % page import=mybean.*% !導入結束 % String title = 筱筱新聞管理系統(tǒng) 。由于系統(tǒng)實現(xiàn)的代碼量較大限于篇幅,文中僅顯示部分代碼,具體實現(xiàn)代碼參見附件。連接池內部聯(lián)系類圖如圖 415 所示。當使用次數(shù)達到最大次數(shù)后就將該連接對象關閉并從池中刪除。 連 接 池取一個連接放回連接S e r v l e t 、 J a v a B e a nS Q L 操 作初 始 化 數(shù) 據(jù) 庫 連 接 池數(shù) 據(jù) 庫連 接 池連 接 1連 接 2連 接 n…空 閑 連 接 ?取 出 連 接Y池 的 上 限 ?N等 待重 試Y加 入 新 連接 到 池 中N是 否 使 用 最 大 次 數(shù) ?從 池 中 刪除 該 連 接Y使 用 次 數(shù) 加 1連 接 狀 態(tài) 設 為 忙N使 用 連 接使 用 完 后 放 回 池 中 圖 414 連接池工作原理圖 [10] 當連接池工作時,首先,在連接池中應當初始化內含一定數(shù)量的連接對象;在使用過程中,如果池中的連接對象不夠,可根據(jù)需要逐漸加入新的連接對象,但池中的連接對象也不能是無限的,當達到最大連接對象數(shù)量時,便不能再往池中添加新的連接對象,如果此時連接對象數(shù)量仍然不夠,就只能等待別的連接對象釋放后再使用,即定義連接池中連接對象的上下界和連接超時時間。 數(shù)據(jù)庫連接池工作原理 數(shù)據(jù)庫連接池實際上是在一個容器對象中建立一定數(shù)目的數(shù)據(jù)庫連接對象。這些操作往往成為最耗時的操作,很多時候,一個網站的速度瓶頸可能就在于此,因而對數(shù)據(jù)庫的連接的管理顯得特別重要。 數(shù)據(jù)庫連接池的必要性 傳統(tǒng)的數(shù)據(jù)庫連接模式開發(fā),存在很多問題。 精品文檔 值得下載 欄 目 編 號欄 目欄 目 名 稱新 聞新 聞 編 號新 聞 標 題新 聞 內 容管 理 員 名稱所 屬 欄 目發(fā) 布 時 間屬 于1N管 理 員管 理1 N用 戶 名 密 碼 圖 413 實體之間關系的 ER圖 [8] 數(shù)據(jù)庫邏輯設計 根據(jù)數(shù)據(jù)庫需求分析和數(shù)據(jù)庫概念設計,設計如下所示的數(shù)據(jù)項和數(shù)據(jù)結構: 管理員表(用戶名,密碼),用戶名為主碼; 欄目表(欄目編號,欄目名稱),欄目編號為主碼; 新聞表(新聞編號,新聞標題,新聞內容,管理員名,所屬欄目,發(fā)布時 間),新聞編號為主碼,管理員名和所屬欄目為外碼; 數(shù)據(jù)庫表設計 數(shù)據(jù)庫邏輯設計完畢后,現(xiàn)在可以將上面的數(shù)據(jù)庫概念結構轉化為某種數(shù)據(jù)庫系統(tǒng)所支持的實際數(shù)據(jù)庫模型。 對于系統(tǒng)管理員來說,他們所關心的是如何對新聞欄目和新聞的添加、修改和刪除。所以,數(shù)據(jù)庫需求分析中就要考慮兩方面因素。 表 45 新聞管理控制層靜態(tài)類責任表 名稱 類型 屬性 責任(或操作) EditNewsServlet 控制 無 對已有新聞編輯的控制 DeleteNewsServlet 控制 無 對刪除已有新聞的控制 AddNewsServlet 控制 無 對添加新聞的控制 欄目管理 欄目管理模塊主要對新聞欄目進行修改、刪除和添加,此功能模塊控制層由EditCategoryServlet、 DeleteCategoryServlet 和 AddCategoryServlet 完成。 L o g i n F o r m用 戶+ L o g i n S e r v l e t ( ) d o P o s t ( ) : v o