張俊蘭,王 媛
(延安大學 計算機學院,陜西 延安 716000 )
電子商城系統,是在網絡上建立一個虛擬的購物商場,避免了挑選商品的繁瑣過程,使購物過程變得輕松、快捷、方便,很適合現代人快節奏的生活;同時又能有效地控制商場運營的成本,開辟了一個新的銷售渠道。
網上購物與傳統購物相比,最大的優勢在于價格比較簡單易行和選擇范圍的豐富多樣。萬維網的觸角遍布全球,不受貨架空間或倉儲的限制,因而在某些方面電子商務能比傳統零售做得好。
網絡經濟的來臨,引致電子商務的迅速發展,而安全問題已成為電子商務的核心問題。JSP電子商務充分利用了Java技術面向對象[1]、獨立于平臺、可移植性、安全可靠等特點,能更好的保證電子商務系統的安全性。
JSP(Java Server Pages)技術為創建和顯示動態內容的Web頁面提供了一個簡捷而快速的方法。JSP技術的目的是使得構造Web應用程序更加容易和快捷。JSP是一種基于Java的腳本技術,它接受請求并生成響應。可以說JSP具備了Java技術的簡單易用,完全地面向對象,具有平臺且安全可靠的特點。利用這一技術可以建立先進、安全和跨平臺的動態網站。
JSP 技術[2,3]依附于一次寫入后可以運行在符合任何符合Java語法結構環境中。與過去那種依附于單一平臺或開發商的模式不同。JSP技術能夠運行在WEB服務器上,并且支持來自多家開發商的工具包。它是一種開放的技術,具有平臺和服務器的獨立性。具有較強的可移植性。JSP和數據庫的連接通常使用通過JDBC直接連接數據庫。所以電子商城系統采用這種先進的技術來實現。
在確定技術之后就要搭建平臺了,由于我們選用了JSP技術,所以需要安裝 Java開發工具集(JDK)和Tomcat(網站服務器)后,并采用SQL Server2000數據庫。它們之間關系如圖1。

圖1 電子商城系統平臺構建
電子商城網站的體系結構采用基于B/S的三層模式。如圖2所示。

圖2 B/S模式的三層結構
系統結構的簡要說明如下:
第一層是表示層,即客戶端。由于采用的是B/S結構,所以客戶端是Browser(即IE瀏覽器)。瀏覽者通過界面向WEB提交服務請求。并負責將服務器返回的信息進行顯示和將客戶信息通過表單提交給服務器。
第二層是功能層,即web[4]服務器。專門用來進行請求中的事務處理,根據請求與第三層的數據庫服務器進行數據交易,然后返回瀏覽者所需要的結果,顯示在第一層的客戶端瀏覽器界面上,從而達到遠程操作的目的。采用這樣的架構改進了傳統Client/Server結構的缺點,除降低了Client端程序邏輯的復雜度,更減輕了后端數據庫存取的負載,也平衡了整個網絡流量。
第三層是數據層,即數據庫服務器。它采用數據庫SQL Server2000,數據庫中進行了視圖、存儲過程的優化。
傳統的電子商務平臺的建設[5]是基于ASP技術。ASP[6]技術由于只能在微軟的操作系統平臺下建立,以及安全問題等限制了它的廣泛使用。ASP技術由于Windows系統固有的問題都會一成不變地累加到它的身上。盡管目前推出了COM組件技術使其功能變得強大,但是這種強大由于自身設計漏洞問題暴露出很大的安全隱患。
3.2.1 從運行平臺方面比較
ASP只能運行在Microsoft的服務器產品平臺上,程序移植性較差,在Unix下雖然有插件支持ASP,但ASP本身的功能有限,必須通過 ASP與COM的組合來擴充,而Unix下的C0M組件實現起來很困難。
JSP具有平臺無關性。這種與服務器硬件和操作系統平臺的無關性是JSP相對于其他動態網頁技術的最大優點。
3.2.2 從數據庫連接方面比較
ASP使用 ODBC通過 ADO(ActiveX Data Object)連接數據庫。
JSP對數據庫的訪問通過JDBC(Java Data Base Connectivity)來實現。如果一個特定的數據庫沒有JDBC驅動程序,Java提供一個JDBC-ODBC橋來將JDBC調用轉化為ODBC調用。所有的Java編譯器都帶有一個免費的JDBC-ODBC橋。理論上,橋可以訪問任何常見的數據庫產品。
3.2.3 從擴展性方面比較
ASP與COM組件結合可擴展,但ASP僅僅使用Script語言,因此要提高其工作效率必須使用大量COM組件,但組件必須花費大量時間、資源即時編譯。
JSP與Java Bean整合可實現功能擴展。COM組件需要在服務器上注冊后才能使用,修改后的組件必須注冊并重新啟動服務器才能使用,而JavaBean在修改后不需要重新注冊,因此開發COM組件要比開發JavaBean組件難度大。
3.2.4 從運行性能方面比較
從已有的性能測試和連接數據庫測試中可以看出,在處理大型問題方面和大型數據庫操作方面下,JSP的性能遠遠優于ASP。這是因為JSP先要編譯成字節碼,再由Java虛擬機解釋執行,比源碼解釋的效率高。雖然第一次調用JSP網頁時速度稍慢,但這是因為存在編譯過程,并且因為在服務器端運行,Servlets比傳統的Java程序運行速度要快,同時Servlets的字節代碼只有在客戶請求時才執行,所以盡管首次調用Servlets時會有幾秒鐘的加載時間,但后續的請求響應非常迅速,因為服務器已經緩存了運行的Servlets。因此,JSP的執行比每次都要解釋執行的ASP代碼要快,尤其是當代碼中存在循環操作時更是如此。
3.2.5 從開發效率方面比較
雖然大型網站目前已經減少ASP架構,但在中小型商務站點上,ASP依然占據了較大的市場,因為ASP有如下優點:一是簡單易學,編輯方便。特別是使用VBScript,JavaScript等簡單易懂的腳本語言,結合HTML代碼,在普通的文本編輯器上即可進行編輯設計。二是客戶端效率高,對客戶機器硬件設備的要求不高。客戶端的瀏覽器不需要執行腳本語言,所有的程序在服務器端直接執行。服務器僅將執行的結果返回給客戶瀏覽器,減輕了客戶端瀏覽器的負擔,提高了交互速度。
JSP以Java語言為基礎,較難掌握,同時在服務器的搭建和Java Beans,Servlet,EJB在服務器上的設置和發布都有一定難度。但是對于大型項目而言,正確地使用JSP,在開發方面,可根據編程小組成員的人力資源合理地分配任務,提高效率;在維護方面,JSP簡單易行,優勢明顯。尤其是網站架構增大時,JSP更適合部署同一時間用戶數量較多的大型網站。
隨著電子商務的迅速發展和廣泛應用,網上交易和支付對網站安全性要求逐漸增高。ASP只在服務器端運行,將執行結果以HTML形式返回客戶端瀏覽器,雖然可以屏蔽源碼程序,但是ASP頁面仍存在安全隱患:一是源代碼安全性隱患。由于ASP程序采用非編譯性語言,大大降低了程序源代碼的安全性。如果黑客侵入站點,就可以獲得ASP源代碼,同時對于租用服務器的用戶,服務器出租商的道德問題也可能造成ASP應用程序源代碼泄露。二是安全性問題在程序設計中易被忽視。ASP代碼使用表單實現交互功能,相應的內容會反映在瀏覽器的地址欄中,如果不采用適當的安全措施,他人就可以繞過驗證直接進入某一頁面。因此,在驗證或注冊頁面中,必須采取特殊措施來避免此類問題。
JSP執行時先編譯成字節碼,再由Java虛擬機執行。源碼相對不易被下載,尤其在使用Java Bean后,Java Bean程序完全可以放到不對外的目錄中,安全性更高,并且Java能通過異常處理機制來有效防止系統的崩潰。
JSP就是在傳統的網頁HTML文件中加入Java程序片段和JSP標記就構成了JSP網頁。JSP基于強大的JAVA語言,具有良好的伸縮性。JSP的特點[5-7]如下:
(1)將內容的生成和現實分離
使用JSP技術,WEB頁面開發人員可以使用HTML或者XML標識來設計和格式化最終頁面。使用JSP標識或者小腳本來生成頁面上的動態內容。生成的腳本語言被封裝在標識和Java Beans組件中,那么其他人,如Web管理人員和頁面設計者,能夠編輯和使用JSP頁面而不影響內容的生成。
(2)強調可重用性的組件
絕大多數JSP頁面依賴于可重用、跨平臺組件(Java Beans或者Enterprise Java Beans組件)來執行應用程序所要求的更為復雜的處理。開發人員能夠共享和交換執行普通操作的組件,或者使用這些組件來為更多的使用者或者客戶團使用。基于組建的方法加速了總體開發過程,并且使得各種組織在他們現有的技能和優化結果的開發努力中得到平衡。
(3)采用標識簡化頁面開發
Web頁面開發人員不一定都是熟悉腳本語言的編程人員。JSP相關XML標識中進行動態內容生成時所需要的。標準JSP標識能夠訪問和實例化Java Beans組件,設置或者檢索組件屬性,下載Applet,以及執行用其他方法更難于編碼或耗時的功能。通過開發定制標識庫,JSP技術是可以擴展的。今后,第三方開發人員或者其他人員可以為常用的功能創建自己的標識庫。這使得Web頁面開發人員能夠使用熟悉的工具和如同標識一樣執行特定功能的構件來工作。
(4)JSP能夠提供所有的Servlets功能
JSP技術是從Servlet技術發展起來的,JSP在編寫表示頁面時遠遠比Servlet簡單,而且不需要手工編譯(由Servlet容器自動編譯)。
(5)一次編寫,隨處運行
在這一點上Java比PHP更出色,除了系統之外,代碼不用做任何修改。
總之,JSP技術可以讓Web開發人員和設計人員非常容易地創建和維護動態網頁,特別是在目前的商業系統中。作為Java技術的一部分,JSP能夠快速開發出基于Web,獨立于平臺的應用程序。JSP把用戶界面從系統內容中分離出來,使得設計人員能夠在不改變底層動態內容的前提下改變整個布局。
電子商城前臺可以將其分為商品查詢、商品展臺、購物車、會員管理、收銀臺、訂單查詢及商城公告等7個部分,其中各個部分及其包括的具體功能模塊如下表1所示。
電子商城后臺可以將其劃分為友情鏈接、商品大類別設置、商品設置、商品小類別設置、公告設置、后臺管理員設置、會員設置、訂單設置及安全退出等9個部分,其中各個部分及其包括的具體功能模塊如下表2所示。

表1 電子商城系統前臺模塊劃分

表2 電子商城系統后臺模塊劃分
該系統所需的數據庫[2]主表如表3所示:

表3 電子商城系統數據庫主表
其中,公共信息表tb_affiche主要記錄電子商城中電子公告等信息;商品大類別信息表tb_bigType主要記錄商品的大類別信息;商品信息表tb_goods記錄商品的名稱、圖片、來源;友情鏈接信息表tb_link記錄前臺顯示的友情鏈接的地址信息;后臺管理員信息表tb_manager管理員進入后臺進行管理時輸入的密碼和用戶名等信息;訂單信息表tb_order記錄用戶購物完后的訂單的信息;訂單信息明細表tb_order Detail記錄購物信息的數量、名稱等信息;商品小類別信息表tb_small Type主要記錄商品小類別信息。
這一部分主要介紹了一個在線購物車系統的開發過程,設計的購物車來實現顧客在電子商城系統選購、查詢商品,完成購物清單的提交,實現網上購物的功能。購物車系統主要開展以下業務:一是管理員業務,主要是管理商品(包括對商品的添加、刪除、編輯等)和用戶管理(包括對用戶的編輯、刪除)。二是用戶業務.主要包括查詢商品、商品入購物車等。
本購物車是在Windows XP專業版操作系統下,My Eclipse 7.0為開發工具,Microsoft SQL Server2000作為數據庫,Tomcat6.0作為服務器。
在超級市場中可以根據自己的需要,把所選的商品放置在購物車中,然后到收銀臺結款,而在網上電子商城當中,當然沒有辦法推車子,通常都會采用一種被稱為購物車技術來模擬現實生活中的事情。這種技術使用起來比較簡單,不但可以隨時添加查看,修改以及清空購物車的商品,還可以隨時去收銀臺結款。
5.2.1 前臺購物車模塊框架設計
前臺購物車模塊主要包括向購物車中添加商品,購物車內商品查詢、修改購物車商品數量,移除購物車中的商品及清空購物車。前臺購物車模塊的軟件結構圖[1]如圖3所示:

圖3 前臺購物車模塊的軟件結構圖
5.2.2 購物車模塊涉及的主要頁面
以下是購物車中所涉及到的主要頁面的名稱,如表4所示:

表4 購物車模塊涉及的主要頁面
5.3.1 數據庫的連接實現
為了便于本系統的后期維護和添加新的功能,將數據庫的連接、查詢、增刪改操作封裝在JDBConnection類。數據庫連接采用JDBC技術:


5.3.2 購物車模塊功能實現程序
購物車程序是購物車系統的核心頁面。顧客把自己喜歡的商品放在購物車中,最終,有時這些商品將被購買,而有時顧客又會將商品退回。所以程序設計中也要把這些情況都考慮在內。
(1)將一商品放入購物車的實現
通過商品添加至購物車頁面cart_add.jsp將商品放入購物車,代碼如下:



電子商城系統基于B/S架構,采用JSP技術進行開發,數據庫由SQL Server2000搭建,并且使用JDBC、ODBC橋驅動程。近年來,隨著信息的全球化和國際互聯網的普及化,越來越多的購物網站出現,網絡購物已逐漸進入人們的日常生活。因此,開發出更便捷的網絡購物系統是十分必要的。通過對電子商城系統搭建過程中購物車功能及訂貨表單提交的實現,我們可以從中了解到網站搭建過程中數據庫的建立、數據庫的調用、實現購物車及訂單提交的設計方法等。
該系統僅適用于中、小型企業初期開展的電子商務活動,在數據安全、數據庫維護方面還有待進一步完善。
[1]張俊蘭,王文發,馬樂榮.軟件工程[M].西安:西安交通大學出版社,2009.4.
[2]祝紅濤,劉海松,郝軍啟.Ajax從入門到精通[M].北京:電子工業出版社,2008.197-203.
[3]王夕寧,王曉平等.JSP通用模塊及典型系統開發實例導航[M].北京:人民郵電出版社,2008.391-394.
[4][美]塞巴斯塔.Web程序設計(第3版國外經典教材計算機科學與技術)[M].北京:清華大學出版社,2006.
[5]潘峰,宋揚.基于MVC模型的大型電子商務網站平臺設計[J].商業現代化,2007,(510):140.
[6]李靜,李雪梅.JAVA實現電子商務[J].商業現代化,2007,(5):86.