黃旭 王剛龍
(廣州海洋地質調查局 廣州 510760)
第壹作者簡介:黃旭,女,1974年生,廣州海洋地質調查局信息資料所網絡室,工程師。
摘要 本文闡述了由我局開發的基於B/S 模式的網站動態信息發布系統,描述了系統的基本模塊和功能。此系統利用JavaBean組件技術集成程序代碼,采用JDBC進行Web數據庫訪問,並給出了系統實現的壹些關鍵性的代碼。
關鍵詞 JSP B/S 模式 動態信息發布系統 JavaBean
廣州海洋地質調查局的國際互聯網站於2003年建立,作為對外樹立單位形象、展示我局最新科研成果、先進技術設備和手段的壹個重要窗口。目前我局的互聯網網站圖文信息發布采用傳統的手工制作網頁的靜態信息發布模式。這種模式工作效率低,動態信息的時效性無法體現,給網絡信息內容審核及管理帶來諸多不便。這不利於發揮網站的作用。動態圖文信息發布系統的研制目的是提高網站動態圖文信息發布的自動化程度和工作效率,免去了煩瑣的網頁制作過程,使不懂得網頁制作的人員也能進行網站動態信息內容更新,方便信息審核及管理。
作為壹種成熟的動態網頁開發技術,JSP是由SunMicrosystems公司倡導,許多公司參與壹起建立的壹種動態網頁技術標準。JSP技術具有以下特點:①適應平臺的廣泛性,②較好的安全性,③組件開發的方便性[1]。考慮以上因素,在開發網站動態信息發布系統過程中我們采用了JSP技術。
1 系統結構模式
本系統是基於B/S(BroWser/Web Server)模式進行開發的,具體來講,采用如圖1所示的三層次體系結構[2],包括:①表示層;②邏輯層;③數據層。
其中,表示層是互聯網動態信息發布系統的用戶接口部分,是實現用戶與應用邏輯處理結果的交互界面,也是用戶與Internet之間交互信息的窗口,由瀏覽器構成。邏輯層完成與信息發布系統有關的所有的事務邏輯,Web服務器是該層中的重要組成部分,它根據客戶端的請求啟動相應的進程來完成有關的事務處理,並將處理結果以HTML代碼的形式,發送給客戶端瀏覽器。信息發布系統主要由客戶端瀏覽器、單位網站、信息發布系統和數據庫四大部分組成(圖2)。本系統采用Tomcat 5.0.28 作為JSP引擎嵌入到Web服務器,在該層中,為提高執行效率和安全性[3],通過JavaBean實現與數據庫的連接。數據層是由數據庫服務器所構成,它主要提供數據管理,對數據庫數據進行讀寫,能夠執行大量的數據的更新和檢索,完成數據存儲。本系統采用的數據庫服務器是SQLServer2000。
圖1 三層體系結構
Fig.1 Three tiers
圖2 信息發布系統的四個部分
Fig.2 The four parts of the system of information publishing
2 系統基本功能模塊
考慮到實際要求,設計了如圖3所示的基本功能模塊。下面就其中的主要模塊進行功能分析。
2.1 系統登錄
在系統登錄模塊中,主要是用於檢驗登錄系統用戶身份的合法性,並根據用戶的身份動態定向到不同的頁面,使得不同身份的用戶具有不同的操作權限。
2.2 新聞信息管理模塊
主要用於用戶進行新聞信息的發布、編輯、查看和審核等操作。包括如下的基本操作:
1)壹級菜單 對前臺顯示的主菜單進行管理。
2)二級菜單 顯示用戶在後臺已經發布的新聞信息,並提供讓用戶根據權限查看、編輯及刪除已發布的信息的功能。
3)發布新聞 實現新聞信息的輸入、編輯及預覽和圖片的上傳等功能。
4)審核新聞 讓審核權限的用戶對新聞信息進行審核、編輯。
圖3 信息發布系統的模塊
Fig.3 The module of the information publishing’s system
2.3 用戶管理模塊
主要提供讓管理員對用戶信息、新聞信息進行基本維護和管理。
1)添加用戶 用於管理員添加新用戶並設置用戶的權限。
2)查看/刪除用戶 用於管理員對已有用戶進行管理。
3)更改用戶密碼 提供讓用戶修改初始密碼的功能。
4)新聞統計 系統可按照相應的要求形成壹個新聞信息發布統計表。
3 詳細設計
3.1 系統平臺的構建
J2 SDK是Java2的軟件開發工具,是Java應用程序的基礎。JSP是基於Java技術的,所以配置JSP環境之前必須要安裝J2 SDK。本系統采用Tomcat作為JSP引擎。在軟件安裝完成後都要進行環境變量的配置。
3.2 采用JDBC技術實現數據庫連接
數據庫連接對動態網站來說是最為重要的部分,Java中連接數據庫的技術是 JDBC(Java Database Connectivity),是壹種用於執行SQL的Java API,由壹組用Java語言編寫的類和接口組成,它為數據庫應用開發人員、數據庫前臺工具開發人員提供了壹種標準的應用程序設計接口,使開發人員可以用純Java API語言編寫完整的數據庫應用程序[4]。在開發中,我們采用JavaBean來對數據庫連接和執行SQL語句等通用數據庫操作進行封裝,避免直接對數據庫進行操作帶來的工程浩大,代碼過長,不易維護。同時為了節省時間和資源,避免因采用傳統連接模式而導致數據庫重啟,我們采用了數據庫連接池技術。主要代碼如下:
Connection conn=null;
Statement stmt=null;
Resu1tSet rs=null;
Try
{
C1ass.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver”);//加載sql驅動程序
conn=DriverManager.getConnection(“jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=gmgs”,user=“root”,PassWord=“”);//創建連接
stmt=conn.createStatement(Resultset.TYPE SCROLL SENSITIVE,Resultset.CONCURREAD_ONLY);
String sql=“select * from art Where id=ˊ”+id+“ˊ”;
Resu1tSet rs=sqlbean.eXecuteQuery(sql);//執行sql語句
}
conn.close();//向連接池歸還連接[5]
3.3 利用JavaBean 訪問數據庫
JavaBean是壹種Java類,通過封裝屬性和方法成為具有某種功能或者處理某個業務的對象。JavaBean被組織成為Package(數據包)以便進行管理,實際上就是把壹組JavaBean壹起放在某某目錄中,每個類的定義前加上Package某某。把經編譯成類的文件放在JSP服務器的特定目錄下[6]。
在JSP中使用JavaBean需要以下步驟:
1)定義JavaBean 組件,將壹組 JavaBean壹起放在某個目錄下,每個類的定義前加上Package,生成.java文件;
2)將定義的類用JDK的Javac命令編譯生成.class文件的JavaBean類文件;
3)在JSP文件中調用JavaBean。方法如下:
設置要引用的JavaBean,生成JavaBean的壹個實例,用<jsp:useBean>標記來完成。實例化壹個JavaBean,就可以訪問它的屬性。通過使用<jsp:getproperty>標記來獲得屬性值,使用<jsp:setproperty>標記來改變JavaBean屬性值[7]。
如:要完成用戶註冊功能,先定義壹個名為 op user.java的JavaBean組件,它用add()方法將表單中用戶填寫的信息添加到數據庫表user中,如果添加成功則返回true,否則返回false.在實現用戶註冊功能的頁面register.jsp調用這個JavaBean,代碼如下:
<jsp:useBean id=”user”scope=“Page”class=“gmgsinfo.run.op user”/>
//實例化
gmgsinfo.run.op user,在當前JSP頁面內查找該JavaBean的標識符是user
if(user.add(request))//直接使用add()方法,用request對象為參數
3.4 數據庫描述
數據庫***設計五個數據表。
管理員表字段包括管理員賬號、密碼、管理員名、所屬部門、電話、權限。
審核表字段包括是否審核。
欄目表字段包括欄目名稱。
新聞表字段包括新聞標題、所屬欄目、副標題、是否審核、新聞作者、新聞發表人、添加時間、修改時間、所屬部門、新聞內容、是否包含圖片、審核人。
部門表字段包括部門名稱。
3.5 程序描述
3.5.1 用戶管理
信息發布系統的用戶主要有三類:系統管理員、審核員和普通維護員。添加用戶的流程是首先輸入壹個用戶名,然後調用數據庫確定該用戶名沒有被使用,其次填寫用戶信息表,設置用戶的初始密碼和權限,最後將用戶信息寫入數據庫。用戶登錄的流程是用戶提交登錄表單後,需要調用數據庫來判斷該用戶的賬號與密碼是否正確。如果正確則將用戶名記錄到Session對象中,如果不正確則返回登錄界面重新登錄。如果登錄用戶是系統管理員,將進入管理員用戶界面;如果是普通用戶將登錄普通用戶界面。用戶登錄後可以更改初始密碼,修改後的信息將重新寫入數據庫。新聞統計表單是將已發表的新聞按照質量記錄的要求以表格的形式顯示出來,用戶可直接通過打印機打印出來。
3.5.2 新聞信息管理
壹級菜單表單是對在網站首頁顯示的主菜單進行管理。用戶可以增加需要在首頁顯示的主菜單。二級菜單表單將用戶在系統內發表的新聞全部顯示出來。包括新聞標題、發表時間、所屬上級菜單、新聞發表人、是否審核。用戶可點擊新聞標題預覽新聞,可以修改或刪除自己發表的新聞。當用戶點擊修改或刪除選項時,系統將根據保存在Session對象中的用戶名來調用數據庫中該用戶信息,判斷該用戶是否擁有權限。如果擁有權限則允許用戶修改或刪除該條新聞,否則系統將提示用戶沒有權限。在發表新聞表單中,用戶只需在相應的文本框中輸入信息,系統將自動生成網頁並將信息保存到數據庫中。其中文章內容欄是壹個簡易的網頁編輯器,用戶可對輸入的新聞信息進行編輯。用戶可通過上傳圖片選項將網頁中的圖片上傳到數據庫中。在新聞輸入完成後,用戶可以網頁形式預覽發表的新聞。在審核新聞表單中擁有審核權限的用戶可對已發表的新聞進行審核,編輯新聞內容並重新保存到數據庫。如果新聞已經通過審核,將顯示在網站的首頁。
3.6 系統流程分析
當用戶登錄到該系統,通過系統驗證後,系統會自動將用戶基本信息及用戶權限信息保存在服務器端,此時,如果用戶有相應的權限就可以進行用戶及權限管理、欄目管理,以及信息發布、信息審核等操作。
對於普通用戶,登錄進入系統後可以選擇進行上述操作。當用戶選擇某個模塊並對其進行操作時,系統將查詢服務器端保存的該用戶權限,驗證合格後,系統把相應的信息或功能頁面顯示給用戶,用戶可以根據自己的權限對所瀏覽內容進行添加、編輯和刪除操作。如果用戶需要發布信息,可點擊發表新聞模塊,在相應的標題欄中輸入信息,將要發布的內容輸入到文章內容欄中,系統將調用相應的模版形成網頁。用戶點擊確定就可以預覽剛剛制作的網頁。若權限驗證不合格,表示用戶沒有相應權限,系統將彈出警告信息告知用戶不能進行該操作,確認警告信息後並不影響該用戶繼續進行其他有權限的操作。
當用戶以管理員身份進入系統後,系統默認管理員具有對於該系統維護、管理的最大權限,即管理員可以進行用戶管理、用戶角色管理、用戶權限管理以及發布信息、文章管理、審核信息等操作。每個用戶都可以擁有多個角色,也就是說每個用戶可以擁有多種權限。
4 結束語
JSP承襲了Java面向對象的程序語言能力和跨平臺的優勢,並能夠與HTML緊密結合,與傳統的CGI程序相比,JSP不僅編寫、執行容易,也大幅度提高了系統的執行性能,提高了信息審核、發布和管理的工作效率。
參考文獻
[1]任艷.應用JSP 進行數據庫信息發布.計算機工程與應用,2002,38(7):212~214,249
[2]Marty Hall,Larry Brown.Servlet與JSP核心編程(第2版).北京:清華大學出版社,2004,(6)
[3]屈霞.基於JSP的數據庫應用程序安全訪問控制設計.電腦開發與應用,2005,18(6):15~16,19
[4]孫敏.JSP連接數據庫方法探討.電腦知識與技術,2005,3:21~22
[5]李興鋒,王移芝.基於JSP的Web動態數據庫交互技術的探討.計算機應用與軟件,2005,22(4):26~27,127
[6]李媛,劉滌塵.壹個使用JavaBeans連接數據庫的JSP應用.2005,12(1):77~80
[7]孟憲虎,沈均毅.WEB數據庫應用程序安全性設計的壹種實現.計算機工程與應用,2002,9:119
The Dynamic Information publishing System Web of Guangzhou Marine Geological Survey Based on JSP
Huang Xu Wang Ganglong
(Guangzhou Marine Geological Survey,Guangzhou,510760)
Abstract:the article introduces the dynamic information publishing system,Which is based on B/S model and designed by the gmgs,describes the basic module and function of the system.The system uses the JaveBean techique to integrate the program code,uses the JDBC to access the Web database,and offers the key code of the system’s realizing.
Key Words:JSP B/S model The dynamic information publishing system web JavaBean