摘要:隨著互聯(lián)網(wǎng)的發(fā)展和全球經(jīng)濟(jì)一體化,電子商務(wù)的建設(shè)變得非常重要。近年來,網(wǎng)絡(luò)的迅猛發(fā)展給人們生活帶來很大的便利,也使得企業(yè)向著信息化的方向發(fā)展。同時,企業(yè)的需求也帶來了Web開發(fā)技術(shù)的更新。Web技術(shù)和數(shù)據(jù)庫技術(shù)互相結(jié)合,產(chǎn)生了Web數(shù)據(jù)庫。Web數(shù)據(jù)庫結(jié)合了Web技術(shù)和數(shù)據(jù)庫技術(shù)的優(yōu)點(diǎn),它使Web網(wǎng)頁從靜態(tài)網(wǎng)頁發(fā)展成了由數(shù)據(jù)庫驅(qū)動的動態(tài)網(wǎng)頁,同時數(shù)據(jù)庫系統(tǒng)的開發(fā)環(huán)境和應(yīng)用環(huán)境也實(shí)現(xiàn)了分離,提高了代碼的可重用性、靈活性以及軟件的性能和可維護(hù)性。
JSP具有開放性、功能強(qiáng)大、跨平臺等眾多優(yōu)點(diǎn),它所定義的三層B/S體系結(jié)構(gòu)很適合于構(gòu)造網(wǎng)絡(luò)繳費(fèi)平臺。該文利用JSP/Servlet技術(shù),結(jié)合MVC設(shè)計(jì)模式,開發(fā)了基于Web的利用JSP/Servlet技術(shù)的三層架構(gòu)網(wǎng)上繳費(fèi)信息系統(tǒng)的解決方案。該方案實(shí)現(xiàn)了表示層和邏輯層的分離,該收費(fèi)系統(tǒng)實(shí)現(xiàn)了原有系統(tǒng)的全部功能,能很好的替代原有收費(fèi)系統(tǒng),并且在擴(kuò)展性和執(zhí)行的效率上有了提高,更好的適應(yīng)了收費(fèi)業(yè)務(wù)的發(fā)展。
關(guān)鍵字:Web數(shù)據(jù)庫;JSP;JavaBean;Servlet;ERP
中圖分類號:TP311文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2010)02-275-03
Net Online Charging System of Dynamic Web Database Technology Based on JSP
LUAN Shuai, ZHAO Hai-jun
(School of Electronicand Information in Dalian Univercity of Technology, Dalian 116023, China)
Abstract: With the development of the Internet and global economic integration, the building of e-commerce is very important recent years, with the development of Internet technical, the network brings more and more conveniences to people's living in every aspect and also urges the informational development of the enterprise. At the same time the need of the business also promotes the web develop technical renewal. Therefore, people put the Web technology and the database technology together, which lead to the appearance of the Web-Database technology. Combing the advantage of Web technology and database technology, the Web pages change into dynamic epages, which are driven by database, and the development enviroment can be separated from the using environment. It separates the view and the business logic forcibly, so it improves the reusability, agility of the code and the quality and maintainability of software using the framework.
JSP has many advantages of opening, mighty function and cross-platform. The three-layer B/S system construction based on JSP is adopted to constructing net online charging platform. Then it is essential to developing Net Online Charging System of dynamic web technology based on JSP. Technology of JSP/Servlet and model of MVC are used in this paper, a structure of net charging system of dynamic web-database technology based on JSP is presented. This charging system realizes all the functions of the former system, primely substitutes the former system, and improves the expansibility and the efficiency of execution, adapts the development of the business well.
Key words: web database; JSP; JavaBean; Servlet; ERP
隨著信息技術(shù)的發(fā)展,越來越多的傳統(tǒng)業(yè)務(wù)都建立了自己的信息系統(tǒng),如電力系統(tǒng)、電信系統(tǒng)、保險(xiǎn)系統(tǒng),利用計(jì)算機(jī)存放和處理大規(guī)模的業(yè)務(wù)數(shù)據(jù),大大地提升了業(yè)務(wù)處理的效率。隨著internet技術(shù)發(fā)展,交互式動態(tài)Web頁面的應(yīng)用,使數(shù)據(jù)在網(wǎng)絡(luò)上高效存取,實(shí)現(xiàn)了Web技術(shù)和數(shù)據(jù)庫技術(shù)的完美結(jié)合,不僅把Web和數(shù)據(jù)庫的優(yōu)點(diǎn)集中在了一起,而且充分利用大量己有的數(shù)據(jù)庫信息資源,用戶可以方便的在Web上檢索和瀏覽數(shù)據(jù)庫的內(nèi)容。
ERP(EnterPriseResource Planning,ERP)系統(tǒng)越來越受到企業(yè)的重視,企業(yè)通過ERP系統(tǒng)合理的整合自身的資源,可以優(yōu)化各個生產(chǎn)流程之間的聯(lián)系,使得企業(yè)生產(chǎn)效率大幅提高。按需設(shè)計(jì)的ERP系統(tǒng)被證明了是提高企業(yè)效率的有效手段。隨著網(wǎng)絡(luò)的進(jìn)一步發(fā)展,某市供熱公司收費(fèi)軟件程序已難以滿足人們?nèi)粘9ぷ骱途W(wǎng)絡(luò)發(fā)展的需求,該文利用JSP/Servlet 技術(shù),結(jié)合MVC設(shè)計(jì)模式,開發(fā)基于Web的利用JSP/Servlet技術(shù)的三層架構(gòu)信息系統(tǒng)的解決方案,對該系統(tǒng)進(jìn)行了升級,其擴(kuò)展性、執(zhí)行效率上都有了明顯提高。
1 Web系統(tǒng)的體系結(jié)構(gòu)及設(shè)計(jì)模式
Web數(shù)據(jù)庫實(shí)現(xiàn)的基本思想是在Web上提供用戶訪問和修改數(shù)據(jù)庫的接口,使任何用戶都可以通過Web瀏覽器在任何地方訪問這些數(shù)據(jù),提供各種網(wǎng)上服務(wù)功能,如圖1所示。運(yùn)用Web訪問數(shù)據(jù)庫的優(yōu)點(diǎn)是:
1) 使用現(xiàn)成的網(wǎng)絡(luò)瀏覽器軟件,無需開發(fā)數(shù)據(jù)庫前端,且界面統(tǒng)一,也減少了培訓(xùn)費(fèi)用 。
2) 標(biāo)準(zhǔn)統(tǒng)一,開發(fā)過程簡單。
3) 方便的跨平臺應(yīng)用。
從應(yīng)用功能的角度,任何一個典型的應(yīng)用系統(tǒng)都可以分為三個組成部分:數(shù)據(jù)層、事務(wù)邏輯層和表示層[1]即:數(shù)據(jù)層保存了持久的數(shù)據(jù),提供對數(shù)據(jù)庫中數(shù)據(jù)的存取、修改查詢的功能,保證訪問數(shù)據(jù)的安全性、完整性和一致性;事務(wù)邏輯層包含了專門的事物信息,決定了如何進(jìn)行具體的數(shù)據(jù)處理;表示層則直接面向用戶,完成應(yīng)用前端的人機(jī)界面處理,實(shí)現(xiàn)與用戶的交互。
1.1 系統(tǒng)的三層結(jié)構(gòu)
目前,基于C/S模式下,資源明顯不對等,是一種“胖客戶機(jī)(fat client)”或“瘦服務(wù)器(thin server)”結(jié)構(gòu);B/S模式下,B/S 雙層結(jié)構(gòu)很好的解決了C/S雙層結(jié)構(gòu)中的表示層不統(tǒng)一、移植性差的問題,這是一種“瘦客戶機(jī)”、“腫服務(wù)器”的模式。基于Web 數(shù)據(jù)庫的三層結(jié)構(gòu)(B/W/D)在客戶端和服務(wù)器之間加入了一個中間層[2],基于Java技術(shù)中間件技術(shù)的三層結(jié)構(gòu)如圖2所示。與前兩層結(jié)構(gòu)相比,有一個明顯的優(yōu)勢,它減輕了客戶端和服務(wù)器的工作負(fù)擔(dān),使它們都變成了“瘦”客戶端和“瘦”服務(wù)器。三層結(jié)構(gòu)的事務(wù)處理是中間層WEB服務(wù)器的主要工作;數(shù)據(jù)庫服務(wù)器用來存儲網(wǎng)上繳費(fèi)信息管理系統(tǒng)中所用到的各種數(shù)據(jù),普通用戶通過瀏覽器來查詢,申請并掛網(wǎng)、修改個人有關(guān)信息和密碼,完成繳費(fèi)功能;管理員則可以增加,修改,刪除等信息,并對個人信息進(jìn)行管理,對服務(wù)器進(jìn)行維護(hù),以及備份和恢復(fù)工作。
1.2 系統(tǒng)的設(shè)計(jì)模式
設(shè)計(jì)模式是面向?qū)ο蟮某绦蛟O(shè)計(jì)人員用來解決編程問題的一種形式化表示。目前,在大多數(shù)Browser/Server結(jié)構(gòu)的Web應(yīng)用中,瀏覽器直接通過HTML或者JSP的形式與用戶交互,響應(yīng)用戶的請求。該文在中間層上采用基于模型圖視控制器(Model-View-Control,MVC)的設(shè)計(jì)模式。Model層用來實(shí)現(xiàn)收費(fèi)業(yè)務(wù)邏輯、View層用來顯示用戶界面、Control層主要負(fù)責(zé)View層和Model層之間的控制關(guān)系。在這種設(shè)計(jì)模式下,各層次之?dāng)?shù)據(jù)傳遞如圖3所示。
1.3 Web數(shù)據(jù)庫的訪問技術(shù)
Web數(shù)據(jù)庫系統(tǒng)的主要目的是要實(shí)現(xiàn)Web與數(shù)據(jù)庫的連接以產(chǎn)生基于數(shù)據(jù)庫的動態(tài)頁面,這是通過Web訪問數(shù)據(jù)庫來實(shí)現(xiàn)[3]。在數(shù)據(jù)庫存取方面,該文采用JSP+Java Servlet+JDBC,如圖4所示。它吸取JSP和Java servlet技術(shù)各自的突出優(yōu)點(diǎn),JSP實(shí)現(xiàn)表示層,讓servlet完成深層次的處理任務(wù),即實(shí)現(xiàn)應(yīng)用層。即客戶端不在產(chǎn)生數(shù)據(jù)庫查詢命令,只通過URL和中間層的Web服務(wù)器建立連接。Web服務(wù)器主要負(fù)責(zé)接收本地或遠(yuǎn)程瀏覽器的HTTP數(shù)據(jù)請求,然后通過中間層的Servlet收到請求后,通過SQL語句,利用JDBCAPI對數(shù)據(jù)庫進(jìn)行訪問和做相應(yīng)的操作處理。Servlet再將查詢的數(shù)據(jù)傳給JSP,最后生成標(biāo)準(zhǔn)的JSP頁面返回給瀏覽器。
2 基于JSP的MVC開發(fā)模式的數(shù)據(jù)庫訪問
該設(shè)計(jì)方案將原來兩層收費(fèi)系統(tǒng)升級為三層體系結(jié)構(gòu)[4-5],即瀏覽器、Web服務(wù)器和數(shù)據(jù)庫服務(wù)器.將Servlet、Java Bean及JSP位于Web服務(wù)器,而后臺數(shù)據(jù)庫則放在數(shù)據(jù)庫服務(wù)器中,通過JavaBean來訪問后臺數(shù)據(jù)庫,并將返回結(jié)果由JSP負(fù)責(zé)送回到客戶端的瀏覽器上,如圖5所示。
該文采用Eclipse+MyEclipse+Tomcat+Oracle10g開發(fā)環(huán)境,進(jìn)行Java數(shù)據(jù)庫應(yīng)用程序開發(fā)。開發(fā)應(yīng)用在技術(shù)上具有明顯優(yōu)勢,它不但提高了應(yīng)用的開發(fā)速度,而且可以在不同的平臺(包括Windows、Linux、Solaris等)下移植和部署。
3 數(shù)據(jù)庫總體設(shè)計(jì)
某市供熱公司原數(shù)據(jù)庫主要包括兩個數(shù)據(jù)庫的設(shè)計(jì):字典數(shù)據(jù)庫(zd)和收費(fèi)數(shù)據(jù)庫(sf)。字典數(shù)據(jù)庫主要存放的是一些字典信息,收費(fèi)數(shù)據(jù)庫存放的是收費(fèi)數(shù)據(jù)庫的信息(其中,Personinfo個人用戶信息表,Person_paid個人繳費(fèi)信息表)。在此基礎(chǔ)上,增加一數(shù)據(jù)庫UserLogin:用來記錄新用戶首次登錄,注冊繳費(fèi)用戶的信息,待系統(tǒng)管理員審批合格以后,生成用戶代碼Member_LoginId(16位ID)和姓名即可登錄。
下面,以用戶登錄系統(tǒng)(如圖6所示)為例,用戶登錄系統(tǒng)包括兩種用戶類型:用戶和管理員,用戶輸入登錄信息后進(jìn)行檢驗(yàn),通過調(diào)用LoginMyBean返回登錄成功與否。該系統(tǒng)的設(shè)計(jì)方案如下。
3.1 Web視圖JSP源程序
Login.jsp-用戶登錄界面;checklogin.jsp-檢測登錄代碼和密碼是否一致,根據(jù)LoginMyBean返回的結(jié)果顯示不同的信息;user.jsp-普通用戶操作界面;admin.jsp-管理員用戶界面。這里的JSP頁面中不包含任何邏輯,僅僅是起到了一個傳遞JavaBean數(shù)據(jù)的作用,結(jié)構(gòu)清晰,邏輯嚴(yán)密。
3.2 模型JavaBean源程序說明
數(shù)據(jù)庫的相關(guān)操作功能封裝在LoginMyBean.java中,供控制器LoginServlet(Servlet)調(diào)用,部分代碼為:
public class LoginMyBean extends JPanel {
private String memberId=1; //用戶注冊ID
private StringmemberLoginId=1;//用戶登錄ID
privateStringpwd=1;
privateBoolean memberLoginOk=1;//判斷是否登錄成功
privatestatic String strDBDriver=\"com.microsoft.jdbc.sqlserver.SQLServerDriver\";
privatestatic String strDBUrl=\" jdbc:microsoft:sqlserver://localhost:1433;
DatabaseName=dbname\",\"UserName\",\"UserPassword\";//數(shù)據(jù)源
privateConnection conn=1; //連接數(shù)據(jù)庫
privateResultSet rs=1; //結(jié)果集
public buyerBean() {//加載JDBC驅(qū)動程序
try {Class.forName(strDBDriver);
……… }}
//獲得登錄是否登錄,并取得用戶的真實(shí)ID號
Public BooleangetMemeberLoginOk(){
String strSql=1; //獲取用戶登錄ID;
Try{
Conn=DriverManager.getConnection(strDBUrl);
Statement stmt=conn.createStatement();
strSql=”select memberLoginOk,memberLoginId from dcsf_UserLogin where member_LoginId=” + memberId“ ‘ and Member_Password=’”+pwd”’”
rs=stmt.executeQuery(strSql)
if (rs.next())
memberLoginOk=true; //表示注冊登錄成功
……}
//只有在登錄成功的情況下,則返回登錄member_LoginID。
PublicString getMember_LoginId()
{ return member_LoginId;}
4 結(jié)束語
該收費(fèi)系統(tǒng)是在原有的一個收費(fèi)系統(tǒng)的基礎(chǔ)上改進(jìn)的,實(shí)現(xiàn)了網(wǎng)上在線繳費(fèi)功能,該系統(tǒng)結(jié)合了目前該電廠最新的收費(fèi)業(yè)務(wù),支持多種在線支付的方式,系統(tǒng)與網(wǎng)上銀行接口直接對接,把該公司的帳號直接通過SSL加密通道傳輸?shù)骄W(wǎng)上銀行,安全性,實(shí)用性都比較好,達(dá)到了最初設(shè)計(jì)的目的,在擴(kuò)展性和執(zhí)行的效率上有了提高,更好的適應(yīng)了收費(fèi)業(yè)務(wù)的發(fā)展。
參考文獻(xiàn):
[1] Swank M,Kittel D,World Wide Web數(shù)據(jù)庫開發(fā)人員指南[M].北京:機(jī)械工業(yè)出版社,1998.
[2] 鄧子云.JSP網(wǎng)絡(luò)編程從基礎(chǔ)到實(shí)踐[M].北京:電子工業(yè)出版社,2007.
[3] 阮國明,邊偉.ORALCE+JSP系統(tǒng)應(yīng)用開發(fā)[M].北京:機(jī)械工業(yè)出版社,2008.
[4] 李金娟.基于JSP的MVC開發(fā)模式在訪問數(shù)據(jù)庫中的應(yīng)用[J].寧夏師范學(xué)院學(xué)報(bào):自然科學(xué),2008,29(3):55-59.
[5] 張力娜,李小林.JavaBean在web數(shù)據(jù)庫訪問中的應(yīng)用[J].甘肅聯(lián)合大學(xué)學(xué)報(bào),2007(5):80-82.
[6] 杜鵬,張阿紅.JSP結(jié)合XML在WEB數(shù)據(jù)庫中交互的研究[J].科技信息,2008(17):51-53.
[7] 蔣繼婭,劉彤,王樹威.Web應(yīng)用中的SQL注入攻擊與防護(hù)方案研究[J].計(jì)算機(jī)安全,2008(5):9-12.
[8] 張立彥.B2C網(wǎng)上購物系統(tǒng)前臺和支付功能模塊的設(shè)計(jì)與實(shí)現(xiàn)[D].北京:北京工業(yè)大學(xué),2007.