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