摘 要:論述J2EE技術在構架數字城市網站發布系統中的應用思路,通過J2EE多層體系結構對系統劃分層次,可以克服傳統的網站發布系統的缺點。在充分利用數據庫技術和網絡技術的基礎上,采用第二代Web發布機制,提供真正的動態內容管理方式,從而既簡化系統的設計步驟,也為程序員提供靈活的設計構架,同時提高系統的運行效率。最后借助于一個在此構架之下已經開發完成的數字城市網站,展示了這種構架技術所具有的通用性、可伸縮性和可移植性等特點。
關鍵詞:數字城市;Java;J2EE;動態網站設計;網站發布系統
中圖分類號:TP393文獻標識碼:B
文章編號:1004-373X(2008)08-147-03
Application and Practice of J2EE Technology in the Framework of
Digital City Website Publishing System
WEI Yanjun,SHEN Hong
(Computer Teaching Experiment Center,Xi′an Jiaotong University,Xi′an,710049,China)
Abstract:J2EE technology is discussed in the framework of digital city website publishing system,through J2EE multitier architecture to overcome shortcomings of the traditional system,while making full use of database and network technology and using secondgeneration web publishing mechanism to provide real dynamic content management,and thus simplifies the system design steps,as well as provides programmers with a flexible framework implement,and improves the system′s operating efficiency.With a case of the digital city website under this framework,it reveales the framework technology is of generic,scalability and portability features.
Keywords:digital city;Java;J2EE;dynamic site design;website publishing system
1 數字城市與數字城市網站系統概述
與城市一般建設相對應,數字城市立足于當前城市的信息化建設,已經成為城市現代化發展戰略的重要組成部分。數字城市的定義范圍較廣,從廣義上講,數字城市即城市信息化,指通過建設寬帶多媒體信息網絡、地理信息系統等基礎設施平臺,整合城市信息資源,實現城市經濟信息化,建立城市電子政府、電子商務企業和電子社區;并通過發展信息家電、遠程教育和網上醫療,建立信息化社區。數字城市不僅涉及到網絡、數據庫、信息系統、政策法規和保障體系等各種信息化基礎設施的建設,而且還涉及到信息化過程中所產生的社會經濟關系和文化倫理觀念的變化與調整。從狹義上講,數字城市是指在理論的指導下,基于3S(地理信息系統GIS、全球定位系統GPS和遙感系統RS)等關鍵技術,深入開發和應用空間信息資源,建設服務于城市規劃、城市建設和管理,服務于政府、企業和公眾,服務于人口、資源環境和經濟社會的可持續發展的信息基礎設施和信息系統,從而建設空間信息基礎設施并在此基礎上深度開發和整合應用各種信息資源。從技術層面上還可將數字城市定義為以空間信息為核心的城市信息系統體系。
為了展現城市風采,實現市政信息資源的共享,更有利于為公眾服務和方便政府的網上辦公,建設一流的數字城市網站是必不可少的數字城市建設內容。一個數字城市網站應具有如下一些典型功能:城市概況、城市向導、政務信息、市民生活、社會保障、企業之窗、人才招聘、法律警務、新聞頻道、文化體育、娛樂導視、美食天地、旅游交通、招生培訓、財經信息、房產動態、今日焦點、最新要聞、圖片報道和綜合新聞等。因此需要制作大量的網頁,目前大多數網站均采用某種發布工具完成此項任務以減少工作量,但存在著一個突出的問題,就是網站的維護工作主要是由網站的維護人員進行一些基本的內容替換和簡單的網頁格式調整,面對網站布局呆板,不易變更和動態性差等弱點,網站程序設計人員束手無策,無法進行靈活和全方位的再構造。而將J2EE技術應用于網站發布系統中,就可以解決這些問題。
2 J2EE技術在構架數字城市網站發布系統中的應用優勢
目前建立網站的技術有多種,比如:HTML,ASP,PHP和Python等,而J2EE是當前首屈一指的非常成熟的面向多層應用的網絡分布式技術, 他既可以用于構建各種企業應用系統,也可以開發網站系統。J2EE除了繼承Java的簡單性、跨平臺性和安全性等諸多特點之外,還提供了像JDBC數據庫技術、RMI和Java IDL分布式技術、XML可擴展描述語言的支持、Servlet\\\\JSP Web應用技術、JavaBeans組件和EJB分布式組件等技術。目前最流行的幾個Web企業應用服務器(像Apache,Tomcat,JBoss,Hibernate,Weblogic,Websphere,OAS,BES和SunOne等)都是J2EE的典型運行環境,構建企業系統和網站中選擇J2EE技術的最大優勢就在于此。
所謂MVC模型,既將企業系統分為模型(即數據表示層)、視圖(即顯示層)和控制(即業務邏輯層)3個層次,而將J2EE技術和MVC三層應用框架模型相結合,使得企業系統層次更加分明,從MVC技術細節可以對系統進行如下3層分解:
數據表示層 使用LDAP,Database,JDBC,JNDI、對象序列化等技術;
業務邏輯層 使用EJB,JavaBeans,JSF等技術;
顯示層 使用Applet,JSP,Servlet,HTML,XML,JavaScript等技術。
圖1說明了J2EE計算模式中所體現的MVC三層模型之間的關系。
圖1 J2EE計算模式與MVC三層模型之間的關系
在圖1中,業務邏輯層的EJB,JavaBeans,JSF通過JDBC,JNDI、對象序列化等技術去訪問數據表示層中的LDAP數據或數據庫,并通過顯示層中的JSP,Servlet技術生成Applet,HTML,XML,JavaScript等格式的內容,最后通過瀏覽器顯示出來。J2EE應用服務器可以有多種選擇,整個系統具有跨平臺的特點,可以構架在目前流行的多種計算機系統之中,比如Unix,Linux和Windows等。
3 數字城市網站發布系統的通用構架技術
采用“數據庫+模板→靜態頁面”的第二代動態網站發布機制,以便解決過去的發布機制中每次用戶訪問都要連接數據庫而導致的數據庫訪問瓶頸等問題;系統可以自動生成靜態頁面供用戶訪問,因此大大提高用戶訪問網站的響應速度,融合了數據庫的靈活、安全和靜態頁面的快速的特點,能夠適應大型門戶網站的大信息量和大用戶量的環境。與圖1中J2EE計算模式相對應,發布系統也采用三層應用構架,如下圖2所示。
圖2 數字城市網站發布系統的三層應用構架
在圖2中,由網站設計人員完成內容編輯,并由發布系統維護人員根據具體網站提供的參數數據完成模板管理和網站管理功能,存入數據庫中;通過發布系統完成這些內容的合成處理,并生成HTML,XML和JavaScript等格式的靜態網頁,部署到Web應用服務器相關目錄之中,供用戶通過瀏覽器進行訪問。
基于以上的技術和構架,并結合一般數字城市的典型功能,對系統的三層應用框架進行如下的技術實現。
(1) 數據庫的建立
考慮到系統的開放性,首選MySQL數據庫管理系統,構建頻道表、欄目表、文章表、廣告表、頁面配置表和用戶表等數據庫表。具體功能如下:
頻道表和欄目表除了描述編號和名稱信息之外,還記錄其首頁所在的目錄和首頁文件名稱;
文章表和廣告表中將文章按內容分類,在內容上可以存放超鏈接、可下載文件、以及多個文本文件、圖片、動畫、聲音文件的組合體;
頁面配置表用于對頁面中的標題、字體、顏色、背景和式樣等進行設置和管理;
用戶表按級別存放各種用戶信息。
為了簡化復雜的網頁內容的組織,在數據庫中還設計了一些視圖和存儲過程,專門用于將數據庫中的數據自動轉換為網頁格式的內容,比如按日期和重要程度對文章分類時,可以建立如下視圖:
CREATE VIEW articlesview as
SELECT
CONCAT(′
′article=′,id,′\">′,title,′
AS href,
menuid,itemid
FROM articletable
ORDER BY levels,releasedate
當取得最新5條新聞時,可以建立如下存儲過程:
CREATE PROCEDURE lasttop5articleprocedure
(IN menuid2 SMALLINT,IN itemid2 SMALLINT)
BEGIN
SELECT
CONVERT(CONCAT(′
′article=′,id,′\">′,title,′
FROM articletable
WHERE menuid=menuid2 AND itemid=itemid2
ORDER BY levels,releasedate
LIMIT 5 OFFSET 0;
END;
(2) 業務邏輯的建立
建立JNDI數據源以及數據庫接口類、數據庫連接類、數據庫訪問類、JavaBeans類和用于較復雜的計算的EJB,從而大大簡化網頁內容的靜態和動態組織的復雜性,以便于系統的擴充。
為了支持常用的各種類型的關系數據庫,設計了數據庫接口類和數據庫連接類,便于封裝連接數據庫的參數和方法,并通過JNDI技術建立各種數據庫源。數據庫訪問類封裝常用的訪問數據庫的增刪改查等方法。JavaBeans類封裝動態網頁所需要的結果。EJB主要用于LDAP數據的訪問以及完成與傳統系統的接口等。
(3) JSP頁面的建立
根據系統提供的網站模板和靜態網頁,建立動態內容所需要的JSP代碼,這些JSP代碼訪問數據庫取得和修改數據。舉例如下:
網站首頁放在digitalcity/,首頁文件名為index.jsp,其內容在網頁設計好以后,由程序員通過網站發布平臺進行少許的代碼編寫。以下代碼用于生成導航條:
<%
DBAccesserByHTML dbabh=new DBAccesserByHTML();
String order[]=dbabh.getAllMenuName();
%>
針對網頁中各個頻道標題和內容放置的位置,可以將以下代碼:
<%=order[i] %>和<%=dbabh.getAllMenuArticleInfo(i) %>分別放在指定(第i個)的頻道標題和內容位置。
各頻道文件放在各自的目錄(digitalcity/?),首頁文件名均為index.jsp。
4 一個采用構架技術的數字城市網站系統的設計與實現案例
作者在本文提出的構架技術平臺下實現了某中型城市的數字城市網站系統。起初以動態網站的方式運行,后來發現在訪問數據庫和Web服務器中出現嚴重的訪問效率和吞吐量等問題,使用該構架技術平臺可以大大緩解這個矛盾。某中型城市的數字城市網站系統的用戶需求主要有以下幾個方面:
(1) 實現門戶網站的內容維護、業務處理和頁面表現維護的分離。
(2) 支持用戶對網站的欄目結構、各欄目的具體內容項、各欄目的層級分類等信息進行自定義和自由擴展。
(3) 為用戶提供靈活方便的Web頁面編輯功能,使用戶能夠直接在瀏覽器上完成頁面的字體、字號、顏色等顯示屬性的編輯定義。
(4) 提供界面友好,易學易用的圖形化工作界面。
(5) 數據采用集中管理的方式,各信息點的交易信息實時匯總到數據中心進行處理。
(6) 保證網絡交易數據和網絡交易過程的安全。
(7) 具有良好的容錯性能,未完成的交易必須回退到原始狀態,操作錯誤要有清晰明確的提示。
(8) 提供安全可靠的備份方式,交易數據保存不小于3年。
在不考慮交易功能的情況下,信息查詢功能劃分如下:
城市新聞、廣告、天氣預報、政務信息、城市向導、社會保障、文體娛樂、招生培訓、市場行情、旅游信息、房產信息、交通信息、人才招聘、勞務信息、生活常識、衛生與健康、導視、美食(餐飲指南、預訂)、法律和警務等等。
首先根據以上功能將網頁劃分為多個頻道、欄目和文章,通過發布系統將相關參數和數據入庫;然后由網頁設計人員根據用戶提供的網頁模板設計靜態網頁;最后再通過發布系統提供的特殊編輯器進行JSP,Servlet等的設計,生成靜態網頁并發布到Web服務器中。
這里將主要的幾個內容,像頻道、欄目和文章劃分為如表1、表 2和表 3所示:
表1 頻道[HT6K]
編號名稱代號目錄首頁
0首頁homeindex.jsp
1城市概況csgkcsgk/index.jsp
2城市向導csxdcsxd/index.jsp
3政務信息zwxxzwxx/index.jsp
……………[HJ0]
表2 欄目[HT6K]
頻道編號編號名稱代號
10城市概況csgk
11城市歷史csls
12地理位置dlwz
20城市地圖csdt
21公交線路gjxl
22景點概況jdgk
…………[HJ0]
表3 文章[HT6K]
頻道編號欄目編號編號標題副標題內容格式作者發布日期類別級別目錄來源關鍵詞
程序方面的設計框架如第3部分的介紹。
5 結 語
設計一個良好的網站發布系統,是構建企業網站的捷徑,作者研制的發布系統盡管最初是針對數字城市網站方面而設計的,但也適合于一般新聞網站。他比傳統的發布系統主要有2個突出的優點:使用目前流行的Java語言和J2EE技術,具有可移植性;通過發布為靜態網頁,大大緩解了對數據庫的頻繁訪問,提高了Web服務器的整體性能。
參 考 文 獻
[1]王家耀.關于我國電子政務與數字城市建設的思考\\[J\\].測繪科學,2005,30(1):35.
[2]段學軍,顧朝林,甄峰,等.數字城市的概念、框架與應用\\[J\\].現代城市研究,2001(3):6164.
[3]李琦.數字城市若干理論問題探討\\[J\\].地理與地理信息科學,2003,19(1):3236.
[4]Jason Hunter,William Crawford.Java Servlet Programming\\[M\\].2nd Edition.O′Reilly,2001.
[5]Richard Monson Haefel.Enterprise JavaBeans\\[M\\].3rd Edition.O′Reilly,2001.
[6]劉雅麗.數字城市概述\\[A\\].城市科學論集\\[C\\].2004.
[7]姜愛林.數字城市:基本框架、發展現狀、存在問題與建議2003年數字城市研究若干問題概述\\[J\\].南寧職業技術學院學報,2004.[HJ0]
作者簡介 衛顏俊 男,計算機工學碩士,西安交通大學計算機教學實驗中心教師。多次擔任多個計算機軟件項目開發工作的主要負責人。編寫過多本教材,其中兩本為十一五規劃教材。為國家級教學團隊、國家級實驗教學示范中心以及“軟件技術基礎”國家級精品課程的骨干教師。
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文