摘 要:本文論述了web發(fā)展的歷史和現(xiàn)狀,介紹了主流的動態(tài)網頁技術和現(xiàn)今流行的web框架。給出一個J2EE新聞發(fā)布系統(tǒng)從需求分析到總體設計再到編碼實施、系統(tǒng)測試的完整實現(xiàn),這個系統(tǒng)基于流行的web框架,整合了時下流行的對象關系映射、攔截器等技術。它具有高度的可擴充性和實用性。它擁有一個非常友好的用戶界面,使得最終用戶不需要了解任何專業(yè)知識即可實現(xiàn)對該系統(tǒng)的管理。
關鍵詞:新聞發(fā)布系統(tǒng);J2EE;Web Work;Hibernate
中圖分類號:TP311.52
互連網發(fā)展如火如荼的今天,信息及時有效的傳播已經成為越來越多人的要求。網站規(guī)模的越來越大就導致了簡單的靜態(tài)頁面難以維護,動態(tài)網頁技術的產生正是順應了這樣一種潮流。當今流行的J2EE框架很好的解決了這個問題,可以使人們更加專著于業(yè)務邏輯的實現(xiàn)而非程序代碼的本身,這也使得J2EE的應用變得更加簡單方便。
1 Web發(fā)展歷史、現(xiàn)狀
最早的Web服務器簡單地響應瀏覽器發(fā)來的HTTP請求,并將存儲在服務器上的HTML文件返回給瀏覽器。在Web服務端,2000年以后出現(xiàn)了幾種主要的技術融合方式。越來越多的Web開發(fā)環(huán)境開始支持MVC(Model-View-Contorller)的設計模型,為開發(fā)者提供了全套的開發(fā)框架。J2EE和.NET平臺就是這種開發(fā)框架的典型代表。
J2EE概述:J2EE應用平臺由以下幾種類型的程序容器(container)組成:Enterprise JavaBeans(EJB)容器負責所有EJB的運行,EJB根據(jù)功能可以分為session bean(通常稱為會話bean,稱之為會話期間bean更確切),entity bean(實體 bean)message-drivenbean(消息驅動bean)。J2EE的應用通信技術(如RMI,JMS,JavaMail)在平臺底層實現(xiàn)機器和程序之間的信息傳遞。
2 系統(tǒng)分析
隨著計算機技術的發(fā)展,網絡技術對我們生活和工作顯得月來越重要,特別是現(xiàn)在信息高度發(fā)達的今天,人們對最新信息的需求和發(fā)布迫切的需要及時性,使HTML顯得越來越難以勝任的情況之下,在JSP編程語言高度發(fā)展的形式下,我們開始了對新聞發(fā)布系統(tǒng)的開發(fā)。
新聞發(fā)布系統(tǒng)需要分為前臺視圖頁面和后臺管理頁面:(1)前臺視圖頁面要內容豐富多樣,能夠展示如圖片、聲音、flash視頻和其他媒體格式。前臺視圖界面應該可以突出頭條新聞,熱點新聞,可以分欄目展示,可以顯示新聞列表。對于頭條新聞應該在顯著位置顯示,新聞排序應該突出最近錄入的新聞??梢圆榭葱侣劦脑敿殐热荨τ谝曨l新聞,可以查看具體的視頻。可以看到新聞相關內容:新聞標題、新聞錄入日期、新聞正文、來源、錄入者、相關圖片和視頻。(2)后臺管理,后臺管理應該經過權限認證。只有經過認證的用戶才可以錄入相關新聞??梢孕陆ㄐ侣剻谀?,可以自定義頭條新聞,熱點新聞,可以對新聞進行相關排序。對于一般新聞可以實現(xiàn)上傳多張圖片??梢栽谛侣剻谀可蟼飨嚓P視頻。對于已經錄入數(shù)據(jù)庫的新聞,可以重新編輯新聞內容。對于最近的更新或者更新的新聞應該排在前面。對于錄入的新聞,需要審核通過方可以在前臺視圖界面顯示。
3 系統(tǒng)設計
3.1 總體設計:表示層:用Web Work的ui標簽負責界面顯示,減少使用Java程序片,以取得更簡潔的表達形式,減少在頁面錯誤處理以更清楚的表達要顯示的內容。控制層:用Web Work的action類進行業(yè)務邏輯處理。Web Work自動對視圖層的提交的表單數(shù)據(jù)處理返回給控制層,控制層由視圖層提交的數(shù)據(jù)對數(shù)據(jù)處理,調用持久層,實現(xiàn)數(shù)據(jù)持久化,并將合適的視圖返回給視圖層。持久層:應用hibernate,由hibernate負責crid操作,實現(xiàn)對控制層提供統(tǒng)一的API,屏蔽具體的訪問細節(jié)。
3.2 開發(fā)工具。本次設計用到的開發(fā)工具主要有:Eclipse 3.2,My Eclipse,WebWork2.1.7,Mysql 5.2 Hibernate 3.1,Apache 2.0,Tomcat5.5,介紹如下:
Eclipse是一個開放源代碼的、與NetBeans、Sun ONE Studio和Borland Jbuilder類似的一種基于Java的整合型可擴展開發(fā)平臺,也是目前最著名的開源項目之一。
My Eclipse:My Eclipse企業(yè)級工作平臺(My Eclipse Enterprise Workbench,簡稱My Eclipse)是對Eclipse IDE的擴展,利用它我們可以在數(shù)據(jù)庫和J2EE的開發(fā)、發(fā)布,以及應用程序服務器的整合方面極大的提高工作效率。
Mysql:My SQL是一個精巧的SQL數(shù)據(jù)庫管理系統(tǒng),雖然它不是開放源代碼的產品,但在某些情況下你可以自由使用。
Hibernate:Hibernate是Java應用和關系數(shù)據(jù)庫之間的橋梁,負責Java對象和關系數(shù)據(jù)庫之間的映射的ORM中間件。
Apache:Apache幾乎可以運行在所有的計算機平臺上。支持最新的http/1.1協(xié)議。簡單而且強有力的基于文件的配置(httpd.conf)。
3.3 系統(tǒng)功能模塊設計。整個系統(tǒng)按照功能劃分為四個模塊:前臺顯示模塊,顯示管理員發(fā)布的新聞;用戶登陸模塊,用戶管理新聞需要登陸;后臺管理模塊,用戶登陸后,進行新聞添加,編輯,刪除等操作;用戶注冊模塊,注冊新的可以管理新聞的用戶。
4 系統(tǒng)實施與測試
4.1 系統(tǒng)測試。測試過程中發(fā)現(xiàn)由于hibernate自身的一級和二級緩存同步問題,出現(xiàn)了明顯的緩存不同步現(xiàn)象,具體表現(xiàn)為:新增加的新聞刷新幾次后消失,再刷新幾次后又會出現(xiàn)。數(shù)據(jù)庫里確實存在那條記錄。刪除后的記錄仍然有可能會在前臺頁面顯示,這樣的問題在更新新聞內容同樣會出現(xiàn),解決辦法:禁用hibernate的二級緩存,清空hiberante一級緩存。但是這樣帶來了執(zhí)行效率和性能的降低:每有一次數(shù)據(jù)請求總要訪問一次數(shù)據(jù)庫。
4.2 系統(tǒng)運行。由于Java程序的跨平臺特性,本系統(tǒng)可以運行在常見的各種平臺上。系統(tǒng)運行環(huán)境:Windows/Linux/Unix平臺,Tomcat5.5、J2sdk1.5以上版本。經過測試,系統(tǒng)運行狀況良好。
參考文獻:
[1]Patrick Lightbody Jason Carreia.WebWork in Action[M].北京:電子工業(yè)出版社.
[2]孫衛(wèi)琴.精通Hibernate:java對象持久化技術詳解[M].北京:電子工業(yè)出版社.
[3]夏昕,曹曉鋼,唐勇.深入淺出Hibernate[M].北京:電子工業(yè)出版社.
[4]孫衛(wèi)琴.JAVA面向對象編程[M].北京:電子工業(yè)出版社.
[5]孫衛(wèi)琴,李洪成.Tomcat與Java Web開發(fā)技術詳解[M].北京:電子工業(yè)出版社.
[6]喬普拉.JSP高級程序設計——圖靈程序設計叢書[M].北京:人民郵電出版社.
[7]耿祥義.JSP基礎教程——黑魔方叢書[M].北京:清華大學出版社.
[8]張桂元,賈燕楓.Eclipse開發(fā)入門與項目實踐[M].北京:人民郵電出版社.
[9]李大卓,劉海.Eclipse核心編程——插件、界面與Web開發(fā)[M].北京:人民郵電出版社.
作者簡介:臧淑霞(1976.02-),女,山東高密人,教師,中二職稱,研究方向:信息技術。
作者單位:山東省日照第四中學,山東日照 276800