[摘要]系統(tǒng)采用B/S模式,使用Java開發(fā)平臺eclipse+Tomcat+MYSQL開發(fā),使用Java集合框架以及I/O流等。數(shù)據(jù)庫采用MYSQL Server使用Tomcat的連接池技術(shù)進(jìn)行連接。
[關(guān)鍵詞]網(wǎng)絡(luò)考試Java數(shù)據(jù)庫
中圖分類號:TP3文獻(xiàn)標(biāo)識碼:A文章編號:1671-7597(2009)1220030-01
近年來信息科學(xué)技術(shù)取得了跳躍性發(fā)展,隨著我國的網(wǎng)絡(luò)基礎(chǔ)建設(shè)的不斷完善和高速因特網(wǎng)用戶數(shù)量的大量增加,遠(yuǎn)程輔助教學(xué)實現(xiàn)的條件已經(jīng)成熟。遠(yuǎn)程考試作為當(dāng)今教育界的熱點一直得到了眾多教育界人士的推崇和贊譽(yù)。
一、主要技術(shù)分析
MVC系統(tǒng)架構(gòu)。MVC模式主要由3個部分組成:模型、視圖和控制器。它可以用JavaBean和EJB等組件技術(shù)來處理數(shù)據(jù)庫的訪問。模型能為多個視圖提供數(shù)據(jù)。由于應(yīng)用于模型的代碼只需寫一次就可以被多個視圖重用,所以減少了代碼的重復(fù)性。 MVC模式的處理過程:首先由控制器接收用戶的請求并決定應(yīng)該調(diào)用哪個模型來進(jìn)行處理,然后模型用業(yè)務(wù)邏輯來處理用戶的請求并返回數(shù)據(jù),最后控制器用相應(yīng)的視圖返回數(shù)據(jù),并通過表達(dá)層呈現(xiàn)給用戶。
Servlet。Servlet有以下優(yōu)點:可移植性。Servlet皆是利用Java語言來開發(fā)的,延續(xù)Java在跨平臺上的表現(xiàn),不論Server的操作系統(tǒng)是Windows、Solaris、Linux、HP-UX、FreeBSD、CompaqTru64、AIX等等,都能夠?qū)⑽覀儗懞玫腟ervlet程序放在這些操作系統(tǒng)上執(zhí)行。借助Servlet的優(yōu)勢,就可以真正達(dá)到“Write Once,Serve Anywhere”的境界。強(qiáng)大的功能。Servlet能夠完全發(fā)揮JavaAPI的威力,包括網(wǎng)絡(luò)和URL存取、多線程、影像處理、RMI、分布式服務(wù)器組件、對象序列化等。若想寫個網(wǎng)絡(luò)目錄查詢程序,則可利用JNDI API;想連接數(shù)據(jù)庫,則可利用JDBC,有這些強(qiáng)大功能的API做后盾,相信Servlet更能夠發(fā)揮其優(yōu)勢。性能。Servlet在加載執(zhí)行之后,其對象實體通常會一直停留在Server的內(nèi)存中,若有請求發(fā)生時,服務(wù)器再調(diào)用Servlet來服務(wù),假若收到相同服務(wù)的請求時,Servlet會利用不同的線程來處理,不像CGI程序必須產(chǎn)生許多進(jìn)程來處理數(shù)據(jù)。在性能的表現(xiàn)上,大大超越以往撰寫的CGI程序。最后補(bǔ)充一點,那就是Servlet在執(zhí)行時,不是一直停留在內(nèi)存中,服務(wù)器會自動將停留時間過長一直沒有執(zhí)行的Servlet從內(nèi)存中移除,不過有時候也可以自行寫程序來控制。至于停留時間的長短通常和選用的服務(wù)器有關(guān)。安全性。Servlet也有類型檢查的特性,并且利用Java的垃圾收集與沒有指針的設(shè)計,使得Servlet避免內(nèi)存管理的問題。由于在Java的異常處理機(jī)制下,Servlet能夠安全地處理各種錯誤,不會因為發(fā)生程序上邏輯錯誤而導(dǎo)致整體服務(wù)器系統(tǒng)的毀滅。JavaBean組件。JavaBean是一個可重復(fù)使用、且跨平臺的軟件組件。一般而言,JavaBean可分為:有用戶接口(UI,User Interface)的JavaBean和沒有用戶接口的JavaBean。通常JSP是搭配沒有UI的JavaBean。一個標(biāo)準(zhǔn)的JavaBean有如下幾項特性:JavaBean是一個公開的類;JavaBean類必須有一個無傳入?yún)?shù)的構(gòu)造函數(shù);取得或設(shè)定屬性時,必須使用getXXX方法或setXXX方法。JSP搭配JavaBean來使用有以下優(yōu)點:可將HTML和Java程序分離,為了日后維護(hù)的方便。
二、系統(tǒng)使用服務(wù)器平臺和系統(tǒng)環(huán)境建立
Tomcat簡介:Tomcat是Apache Jakarta的子項目之一,是Sun公司推薦的JSP、Servlet容器。Tomcat提供了數(shù)據(jù)庫連接池、SSL、Proxy等許多通用組件功能。在使用開發(fā)基于數(shù)據(jù)庫的WEB程序時,傳統(tǒng)的模式基本是按以下步驟:在主程序(如Servlet、Beans)中建立數(shù)據(jù)庫連接。進(jìn)行SQL操作,取出數(shù)據(jù)。斷開數(shù)據(jù)庫連接。使用這種模式開發(fā),存在很多問題。首先,我們要為每一次WEB請求(例如察看某一篇文章的內(nèi)容)建立一次數(shù)據(jù)庫連接,對于一次或幾次操作來講,或許覺察不到系統(tǒng)的開銷,但是,對于WEB程序來講,即使在某一較短的時間段內(nèi),其操作請求數(shù)也遠(yuǎn)遠(yuǎn)不是一兩次,而是數(shù)十上百次,在這種情況下,系統(tǒng)開銷是相當(dāng)大的。事實上,在一個基于數(shù)據(jù)庫的WEB系統(tǒng)中,建立數(shù)據(jù)庫連接的操作將是系統(tǒng)中代價最大的操作之一。很多時候,可能網(wǎng)站速度瓶頸就在于此。針對以上問題,首先想到可以采用一個全局的Connection對象,創(chuàng)建后就不關(guān)閉,以后程序一直使用它,這樣就不存在每次創(chuàng)建、關(guān)閉連接的問題了。但是,同一個連接使用次數(shù)過多,將會導(dǎo)致連接的不穩(wěn)定,進(jìn)而會導(dǎo)致WEB SERVER的頻頻重啟。故而,這種方法也不可取。實際上,可以使用連接池技術(shù)來解決上述問題。連接池最基本的思想就是預(yù)先建立一些連接放置于內(nèi)存對象中以備使用。當(dāng)程序中需要建立數(shù)據(jù)庫連接時,只須從內(nèi)存中取一個來用而不用新建。同樣,使用完畢后,只需放回內(nèi)存即可。而連接的建立、斷開都由連接池自身來管理。同時,我們還可以通過設(shè)置連接池的參數(shù)來控制連接池中的連接數(shù)、每個連接的最大使用次數(shù)等等。通過使用連接池,將大大提高程序效率,同時,我們可以通過其自身的管理機(jī)制來監(jiān)視數(shù)據(jù)庫連接的數(shù)量、使用情況等。
系統(tǒng)環(huán)境的建立:該系統(tǒng)可跨平臺運(yùn)行于各種操作系統(tǒng)之上,現(xiàn)以windows 2003 Server為例來說明系統(tǒng)的搭建過程。服務(wù)器搭建,系統(tǒng)采用Apache作為Web服務(wù)器,采用Tomcat作為JSP服務(wù)器。然后將二者結(jié)合。首先安裝Tomcat5.0版,安裝完成后將%JAVAHOME%/lib/tools.jar拷貝到%TomcatHome%/common/lin/目錄下。在瀏覽器中鍵入:http://127.0.0.1:
8080,如出現(xiàn)歡迎界面如圖,則說明Tomcat以啟動并正常工作。其次安裝Apache_2.0.47-win32-x86-no_ssl.msi。然后測試:在瀏覽器中鍵入:http://127.0.0.1,如出現(xiàn)歡迎界面則web服務(wù)器成功啟動并運(yùn)行正常。最后為兩者的結(jié)合。重新啟動Apache,然后測試連接,在瀏覽器中鍵入http://127.0.0.1/index.jsp,如出現(xiàn)Tomcat歡迎界面則說明二者連接成功。數(shù)據(jù)庫搭建系統(tǒng)采用開源的數(shù)據(jù)庫管理系統(tǒng)MySQL4.0.16作為數(shù)據(jù)庫服務(wù)器,首先安裝MySQL4.0.16,安裝完成后進(jìn)入%mysqlhome%/bin/下,然后運(yùn)行winmysqladmin啟動MySQL服務(wù)器,然后進(jìn)入mysql,最后修改root密碼。mysql>update user set password=PASSWORD(‘1234) where user =‘root;mysql>flush privileges;然后以數(shù)據(jù)庫連接池的方式與系統(tǒng)建立連接。虛擬主機(jī)及數(shù)據(jù)庫連接池的建立,在%TOMCATHOME%/confserver.
Xml中加入配置代碼即可建立虛擬主機(jī)及數(shù)據(jù)庫連接池。
作者簡介:
周振波(1970-),漢族,吉林磐石市人,工程師,研究方向:網(wǎng)絡(luò)安全。