[摘要] 隨著 Internet 日益發(fā)展,基于JSP的電子商務(wù)系統(tǒng)越來越普及。主要介紹了幾種基于JSP建立電子商務(wù)系統(tǒng)的關(guān)鍵技術(shù)。首先分析了JSP實現(xiàn)電子商務(wù)系統(tǒng)的工作原理;隨后對JSP中運用JavaBeans實現(xiàn)數(shù)據(jù)庫連接及數(shù)據(jù)庫連接池等方面進行了較為深入的探討,最后給出了基于JSP的電子商務(wù)系統(tǒng)案例的具體實現(xiàn)。
[關(guān)鍵詞] JSP JavaBeans 數(shù)據(jù)庫連接池
一、引言
隨著網(wǎng)絡(luò)的普及和發(fā)展,電子商務(wù)(electronic commerce)在當(dāng)前的網(wǎng)絡(luò)時代扮演著越來越重要的角色,并將有力地推動信息和信息服務(wù)業(yè)的發(fā)展。它不僅涉及電子技術(shù)和商業(yè)交易本身,而且涉及到諸如金融、稅務(wù)、教育等其他社會層面,是一個與社會大環(huán)境息息相關(guān)并獨具完整結(jié)構(gòu)體系的系統(tǒng)工程。隨著通信技術(shù)和網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,電子商務(wù)的發(fā)展勢在必行。本文以JSP技術(shù)為背景,論述了構(gòu)建電子商務(wù)系統(tǒng)的關(guān)鍵技術(shù)。
二、JSP
1.概述
JSP(Java Server Pages)是由 Sun,Microsoft 公司倡導(dǎo),多家公司參與建立的一種動態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn),其設(shè)計目的是使構(gòu)造基于Web的應(yīng)用程序更加容易和快捷,由于JSP實現(xiàn)了Web動態(tài)內(nèi)容與顯示的分離,脫離了硬件平臺的束縛,并且編譯后大大提高了運行速度,因此,JSP正逐漸成為Internet上主流的Web應(yīng)用開發(fā)技術(shù)。
2.基于JSP的電子商務(wù)系統(tǒng)體系結(jié)構(gòu)
在電子商務(wù)和網(wǎng)絡(luò)應(yīng)用快速發(fā)展的世界,開發(fā)和管理一個電子商務(wù)系統(tǒng)將面臨著巨大的挑戰(zhàn)。利用先進的Java 技術(shù):JSP 、JavaServlets 和JavaBeans ,能高效地解決前端信息安全以及后臺大量數(shù)據(jù)接口等一系列大型商業(yè)網(wǎng)站所面臨的問題。JSP作為其中構(gòu)建動態(tài)網(wǎng)站的主流技術(shù),正展現(xiàn)著其巨大的魅力。
基于JSP的電子商務(wù)系統(tǒng)的體系結(jié)構(gòu)采用分層架構(gòu),包括客戶端、應(yīng)用邏輯和數(shù)據(jù)服務(wù)三層。
客戶端主要包括 HTML,Applet 和客戶應(yīng)用程序??蛻舳送ㄟ^瀏覽器向服務(wù)器發(fā)送它的請求,Web 服務(wù)器識別出瀏覽器請求URL 中的.jsp 擴展文件名,就會自動調(diào)用JSP引擎行處理。Web 服務(wù)器處理完用戶請求后,把結(jié)果解釋成瀏覽器識別的 HTML語言,傳送給客戶端。
一個完整的Web 應(yīng)用程序服務(wù)器基本上是由三個層次構(gòu)成的:Web服務(wù)器、Servlet 引擎和JSP引擎。當(dāng) Web 應(yīng)用程序服務(wù)器第一次接收到對一個JSP頁面的請求時,JSP 引擎就把這個頁面的源代碼編譯成一個Servlet。由一個 HTML 頁面和嵌入其中的Java 命令一起組成的一個 JSP 頁面,基本上是要轉(zhuǎn)換成一個Servlet 類。無論什么時候如果JSP 頁面發(fā)生了變化,這個過程都要再執(zhí)行一次。然后由 Servlet 引擎執(zhí)行這個臨時的Servlet,來創(chuàng)建響應(yīng)消息,這個消息就是最終要返回給客戶的信息。
數(shù)據(jù)服務(wù)包括數(shù)據(jù)庫服務(wù)器、Java 應(yīng)用程序以及可使用 CORBA 的應(yīng)用程序等。數(shù)據(jù)服務(wù)通過相關(guān)的接口被應(yīng)用程序邏輯直接調(diào)用,為客戶請求提供數(shù)據(jù)支持。
3.關(guān)鍵技術(shù)
(1)JDBC
數(shù)據(jù)庫連接對電子商務(wù)系統(tǒng)來說是最為重要的部分,Java 中連接數(shù)據(jù)庫的技術(shù)是JDBC(Java Database Connectivity)。很多數(shù)據(jù)庫系統(tǒng)帶有JDBC驅(qū)動程序,Java 程序就是通過JDBC驅(qū)動程序與數(shù)據(jù)庫相連,執(zhí)行查詢、提取數(shù)據(jù)等操作。
JDBC大致被分為三個部分,即JDBC API,JDBC驅(qū)動程序管理器和JDBC驅(qū)動程序。JDBC API 通過Java.sql 包來提供。在JDBC API上只設(shè)計為利用數(shù)據(jù)庫而提供的類的接口,而這個接口是由提供JDBC驅(qū)動的軟件商來實際完成的。JDBC驅(qū)動管理器的作用是在JDBC運行結(jié)構(gòu)上,提供最基礎(chǔ)的指引功能。即當(dāng)一個JDBC API程序進行數(shù)據(jù)庫調(diào)用時,它會選擇一個正確的JDBC驅(qū)動程序進行連接。JDBC驅(qū)動的作用是當(dāng)JDBC API制作的程序進行數(shù)據(jù)調(diào)用時,實際連接數(shù)據(jù)庫并進行相應(yīng)的處理。JDBC驅(qū)動提供JDBCAPI的接口類。
(2)JavaBeans
JSP程序并不直接訪問數(shù)據(jù)庫, 而是通過JavaBean中間件來訪問數(shù)據(jù)庫。JavaBeans是一種Java類,通過封裝屬性和方法成為具有某種功能或者處理某個業(yè)務(wù)的對象。它可以直接被JSP頁面或Servlet調(diào)用,是JSP擴展 Web 功能最強有力的一個方面。數(shù)據(jù)庫訪問中間件用于封裝常用的數(shù)據(jù)庫, 完成數(shù)據(jù)庫連接、打開和關(guān)閉, 執(zhí)行查詢、插入、更新和刪除等操作。將這些復(fù)雜的操作全部封裝在JavaBean中, 可以簡化編程。
(3)數(shù)據(jù)庫連接池技術(shù)
在數(shù)據(jù)庫操作中, 建立與數(shù)據(jù)庫的連接是非常耗時的一項操作, 并且數(shù)據(jù)庫所能支持的并發(fā)連接是有限的, 多個并發(fā)連接將導(dǎo)致數(shù)據(jù)庫運行效率急劇下降。使用連接池技術(shù)(Connection Pool), 可充分重用消耗內(nèi)存的資源, 大大節(jié)省內(nèi)存, 提高服務(wù)器的服務(wù)效率, 能夠支持更多的客戶服務(wù) 。數(shù)據(jù)庫連接池技術(shù)對數(shù)據(jù)庫連接的使用不是每次都要申請、釋放, 這樣可提高對網(wǎng)站請求的訪問速度, 可增加網(wǎng)站的并發(fā)請求處理能力, 不會因過多的并發(fā)請求導(dǎo)致網(wǎng)站癱瘓。
三、應(yīng)用案例
下面以典型的電子商務(wù)系統(tǒng)——網(wǎng)上書店為例,介紹在該案例中JSP技術(shù)的具體實現(xiàn)。
1.數(shù)據(jù)庫的訪問技術(shù)實現(xiàn)
(1)將數(shù)據(jù)庫連接封裝在JavaBean中。
首先裝載數(shù)據(jù)庫驅(qū)動程序, 可以使用JDBC- ODBC 橋:
Class forName(”sun .jdbc. odbc. Jdbc.OdbcDriver”);
也可使用數(shù)據(jù)庫自己特定的JDBC驅(qū)動程序, 對 M ySQL驅(qū)動程序為:
Class forName(“ org. git. mm .mysql. Driver”);
然后與特定的數(shù)據(jù)庫(在這里連接一個名為winter的數(shù)據(jù)庫)建立連接:
String sConnStr=” jdbc. Odbc. Winter”;
Connection conn= DriverManager. getConnection (sConnStr,” username”,” password”);
最后定義執(zhí)行SQL語句的函數(shù):
public ResultSet executeQuery (String sql){
ResultSet result= 1;
try{
Statement stmt= conn. createStatement( );
result =stmt. executeQuery (sql);
}
catch
完成后將這個JavaBean 的源文件取名為db_bean. java , 編譯成功后生成一個db_bean. class文件, 把class.文件保存在目錄\\ Tomcat5.0\\ webapps \\Winter \\W EB- INF\\ classes之下 , 即可在JSP程序中調(diào)用這個JavaBean對數(shù)據(jù)庫進行相關(guān)操作。
(2)使用JavaBean 來執(zhí)行SQL 語句。
首先調(diào)用剛才完成的JavaBean
然后定義并執(zhí)行SQL 語句, 并對運行結(jié)果作相應(yīng)的操作:
String sql=” Select *from book”;
ResultSet result= data. executeQuery( sql);
while (result. next()){//逐條取得的結(jié)果集
//執(zhí)行一定操作 }
//最后關(guān)閉結(jié)果集;
result. close();
2.數(shù)據(jù)庫連接池技術(shù)實現(xiàn)
在JavaBean中使用數(shù)據(jù)庫連接池的方法為:
首先裝載驅(qū)動程序:
Class forName( sun jdbc odbc JdbcOdbcDriver);
然后與數(shù)據(jù)庫建立連接, 獲得一個連接池對象, 并定義最大連接數(shù):
String sConnStr= “jdbc.odbc.winter”;
DBConnectionPool connPoll
connPool= DriverConnectionM anager .getInstance( sConnStr ,”username”,” password”);
connPool. maxconn= 20;
再獲得一個連接:
Connection conn= connPool.getConnection();
最后再定義執(zhí)行SQL語句的函數(shù)。
四、結(jié)束語
隨著網(wǎng)絡(luò)應(yīng)用的飛速發(fā)展,創(chuàng)建可靠、穩(wěn)定的電子商務(wù)系統(tǒng)越來越重要。在這里主要介紹了JSP中運用JavaBeans 實現(xiàn)數(shù)據(jù)庫連接及數(shù)據(jù)庫連接池等構(gòu)建電子商務(wù)系統(tǒng)的關(guān)鍵技術(shù)。對于一個基于JSP的應(yīng)用系統(tǒng)而言,調(diào)整系統(tǒng)性能和整體效率,還需要對JSP 引擎、Web服務(wù)器安全性、數(shù)據(jù)庫設(shè)計等諸多方面綜合考慮,才能實現(xiàn)商業(yè)系統(tǒng)的穩(wěn)定運行。
參考文獻:
[1]楊山林:電子商務(wù)概論[M]. 北京:機械工業(yè)出版社,2002
[2]徐汀榮黃斐:電子商務(wù)原理與技術(shù)[M].北京:科學(xué)出版社,2001
[3]Microsoft Corporation. 電子商務(wù)開發(fā)技術(shù)[M].北京:清華大學(xué)出版社,2000
[4]AvedalK,AyersD.JSP編程指南[M].北京:電子工業(yè)出版社,2001
[5]黃浩文黃靜舒:使用 JSP 技術(shù)構(gòu)建電子商務(wù)應(yīng)用系統(tǒng)[M]. 北京:機械工業(yè)出版社,2001
[6]丁振國:基于JSP 建立電子商務(wù)網(wǎng)站的核心技術(shù)[J].計算機應(yīng)用,2002 7 :124~126
[7]郭曉艷劉曉霞朱潔娜:基于JSP的電子商務(wù)網(wǎng)站的構(gòu)建技術(shù)[J].微機發(fā)展,2005(06)