js|電子商務
1. 引言: 目前動態網站設計技術主要有:利用Perl/C++/Delphi等開發的CGI,兩種有名的API-ISAPI/NSAPI,還有ColdFusion,以及最近幾年流行起來的3p技術-ASP,PHP,JSP(據Internet上有關網站統計約有近百種); ASP-Ative Server Page,由微軟公司開發 ,是一個WEB伺服器端的開發環境,主要採用指令碼語言VBScript(或Javascript/perl等)作為自己的開發語言,可用ODBC或直接驅動法訪問Window平台的資料庫。PHP-Person Server Page ,是由Rasmus個人創立的一種跨平台的伺服器端的嵌入式指令碼語言. 它大量地借用C,Java和Perl語言的文法, 並耦合PHP自己的特性,.是一種很有個性的網站開發語言,它支援目前絕大多數資料庫。JSP-Java Server Page , 是Sun公司推出的新一代網站開發語言,Sun 公司除Java 應用程式 和 Java Applet 之外,又創立了JSP,其可以在Serverlet和JavaBean的支援下,完成功能強大的網站程式開發,特別是有許多訪問資料庫的方法。在電子商務平台設計中,主要需要解決"網站結構的設計","註冊介面","交易介面","後台資料庫",以及 "配套模組"諸如購物/使用者/論壇/反饋/搜尋/會話等設計;考慮篇幅,本文只給出統一的前台介面及後台資料庫的3p設計方法;可以說ASP,PHP,JSP與網路資料庫的操作是電子商務網站平台設計的堅強基石。
2. 構建三種設計技術的運行環境2 .1構建ASP的運行環境:NT5.0Server,IIS5.0 ,ASP3.0 。 安裝Windows2000Server(NT5.0Server)時選擇IIS5.0有關選項。安裝完後ASP3.0便內嵌於IIS5.0中。測試ASP:啟動瀏覽器,在地址欄處輸 127.0.0.1:80/default.asp ,若瀏覽到IIS伺服器的ASP歡迎頁面,說明安裝成功 2.2構建PHP4的運行環境:NT5.0Server, Apache1.3.12 php4.0 安裝支援PHP的web伺服器Apache1.3.12,將Apache伺服器壓縮檔解壓縮,根據提示進行整個安裝過程,自己選擇安裝到目錄d:\apache下。安裝PHP4,將PHP4壓縮檔解壓縮到d:\php4即可,同時將其中的php.ini-dist檔案拷貝到winnt目錄中,將檔案更名為php.ini,開啟該檔案將其中extension_dir 設定為:d:/php4,並載入擴充模組:將檔案中含有;extention=*.dll的各項前面的";"號去掉即可;修改設定Aphache伺服器,用文字編輯器編輯目錄d:\aphache目錄下的子目錄conf下名為httpd.conf的文字檔,首先將"#ServerName *"這一行下加入"ServerName 127.0.0.1/" ; ,其次將"Port 80"改為"Port 81(或其他與IIS5.0不衝突的連接埠)",再其次設定更改Apache虛擬目錄,將"Documentroot "d:/Apache/htdocs""改為Documentroot "d:/trade"(該目錄即是電子商務網站目錄,可用任意方法建立目錄trade),最後加入支援php4的如下語句:ScriptAlias /php4/ "d:/php4/" AddType application/x-httpd-php .php AddType application/x-httpd-php .phtml Action application/x-httpd-php4 "/php4/php.exe";測試php:完成上述步驟後,在d:\trade目錄下,用如何文字編輯器,產生副檔名為.php(或phtml)的檔案test.php,在檔案中輸入如下php代碼,存檔後,啟動Apache,接著你在瀏覽器中輸入 127.0.0.1 :81/test.php,若看到php的版本和擴充模組等資訊,說明環境安裝設定成功。2.3構建JSP的運行環境:NT5.0Server,Resin1.13, jdk1.3 安裝Java編譯器jdk1.3:運行jdk1_3-win.exe,按照提示完成安裝即可,將其安裝在d:\java1.3目錄,也可安裝在其他目錄。 設定系統內容參數:控制台/系統/環境頁中選擇path 參數加入d:\jdk1.3\bin;增加新的環境參數classpath=d:\jdk1.3\lib\tools.jar;d:\jdk1.3\lib\dt.jar;,然後重新啟動電腦即可安裝支援JSP的web伺服器Resin1.1.3,將RESIN-1.1.3.zip釋放為d:\Resin1.1.3 即可。設定管理員連接埠,開啟d:/resin1.1.3/conf/目錄下的resin.conf檔案在
8080 標籤處將連接埠設定為82(在我的NT5.0上裝有三個伺服器,這樣三個伺服器的連接埠分別為IIS :80;Apache:81;Resin:82其實也可設定為其他互不衝突的連接埠號碼). 測試JSP:啟動Resin伺服器,啟動瀏覽器,在地址欄處輸 127.0.0.1:82/ ,若瀏覽到Resin伺服器的JSP歡迎頁面,說明安裝成功
3.產生三種格式的動態表單頁面 為了通用,這裡採用可能用到的表單對象為例,至於下面設計具體資料表用到的欄位,只要轉成給出的表單域相應對象即可.3.1用ASP動態產生與資料庫進行資料交流的動作表單: form.asp: 產生表單域頭: 產生普通文本: 產生密碼文本: 產生滾動文本: 產生單選: 產生複選: 產生列表框: 產生提交按鈕 產生重填按鈕 產生表單域尾 3.2用PHP動態產生與資料庫進行資料交流的動作表單: form.php 產生表單域頭:"?> 產生普通文本:"?> 產生密碼文本:"?> 產生滾動文本:"?> 產生單選:"?> 產生複選:"?> 產生列表框:網路資料庫Asp技術Php技術Jsp技術網站設計 "?> 產生提交按鈕 "?> 產生重填按鈕"?> 產生表單域尾"?> 3.3用JSP動態產生與資料庫進行資料交流的動作表單 form.jsp 產生表單域頭: 產生普通文本: 產生密碼文本: 產生滾動文本: 產生單選: 產生複選: 產生列表框: 產生提交按鈕 產生重填按鈕 產生表單域尾
4.設計用於儲存商務網站互動資料的MySql資料庫4.1啟動MySql資料庫伺服器(MySql的安裝及ODBC驅動程式的安裝與設定請參閱相關書籍) 可在NT5.0下用啟動服務法/NET命令法/命令視窗鍵入MySqld-shareware法,啟動MySql資料庫伺服器,啟動資料庫伺服器後,在d:\mysql\bin>提示符下鍵入mysql-h 127.0.0.1 -u root 即可出現mysql>提示符,從這開始即可進行對MySql資料庫的各種操作。若要退出可鍵入quit/exit,若要關閉資料庫伺服器,可在d:\mysql\bin>提示符下鍵mysqladmin -u root shutdown 4.2建立MySql資料庫 在MySql資料庫的提示符mysql>鍵入Create database tradedb ;(或go) 4.2.建立MySql資料庫表 這裡以商務網站中常用的幾種資料表為例,主要用到的資料表和產生資料表的SQL代碼如下:(這裡的資料表欄位只要分別對應上述表單域對象即可實際操作,資料表統一用tablename表示) 客戶登入管理資料表 CREATE TABLE users ( ID int not null auto_increment, UserName varchar(30) not null, Password varchar(20) not null ) 客戶資訊資料表 CREATE TABLE usermessage ( UserName varchar(30) not null, Email varchar(80) not null, Address varchar(120) not null , Fax varchar(40) null, Phone varchar(40) not null, Cerreycard varchar(50) not null ) 客戶定購商品資料表 CREATE TABLE catalog ( ProductId int not null , Name varchar(64) not null, Price float(6,2) not null, Description ;text null )
5.設計處理表單資料的3p程式5.1設計處理表單資料的ASP程式 form_cl.asp 建立與資料庫的串連:這裡採用直接驅動法 Set conn = Server.CreateObject("ADODB.Connection"); conn.open "driver={MySQL};server=localhost;uid=user;pwd=xxxxxx;database=tradedb" 擷取表單提交的資料: data1=request("ptwbk");data2=request("mmwbk");data3=request("gdwbk") data4=request("dxk");data5=request("fxk");data6=request("lbk") 用SQL語句對資料庫進行操作 查詢資料記錄: sql="select * from tablename" ;set rs=conn.execute(sql) " 增加資料記錄: sql="insert into tablename(ptwbk,mmwbk,gdwbk,dxk,fxk,lbk) values('data1','data2','data3','data4','data5', 'data5')"; set rs=conn.execute(sql) 更改某條資料記錄: sql="update tablename set data1="request(ptwbk )", where ID="num"; set rs=conn.execute(sql) 刪除某條資料記錄: sql="delete from tablename where ID="num";set rs=conn.execute(sql) 將SQL語句處理的資料結果輸出 Response.Write "
" Response.Write " " For i=0 to rs.Fields.Count-1 Response.WRITE " " & rs.Fields(i).Name & " " Next Response.Write " " While Not rs.EOF Response.Write " " For i=0 to rs.Fields.Count-1 Response.WRITE " " & rs.Fields(i).Value & " " Next Response.Write " " rs.MoveNext Wend Response.Write " " 關閉資料庫: rs.close;conn.Close5.2設計處理表單資料的PHP程式 form_cl.php 建立與資料庫的串連:這裡採用PHP的MySql函數法(也可用ODBC函數法) $conn=odbc_connect("localhost","user","xxxxxx"); 選擇資料庫: mysql_select_db("tradedb","$conn"); 獲去表單提交的資料: $data1=$ptwbk; $data2=$mmwbk; $data3=$gdwbk; $data4=$dxk; $data5=$fxk; $data6=$lbk; 用SQL語句對資料庫進行操作 查詢資料記錄: $sql="select * from tablename" ;$result=odbc_do($conn,$sql); 增加資料記錄: $sql="insert into tablename(ptwbk,mmwbk,gdwbk,dxk,fxk,lbk) values('$data1','$data2','$data3','$data4','$data5','$data6')";$result=odbc_do($conn,$sql); 更改某條資料記錄: $sql="update tablename set $data1=ptwbk where ID=num" $result=odbc_do($conn,$sql); 刪除某條資料記錄:$sql="delete from tablename where ID=num";$result=odbc_do($conn,$sql); 將SQL語句處理的資料結果輸出 odbc_result_all($result,"border=1"); 關閉資料庫: odbc_close($conn);5.3設計處理表單資料的JSP程式 form_cl.jsp 建立與資料庫的串連:這裡採用JDBC-ODBC橋產生JavaBean法 建立一個JavaBean命名為conndb.java,並儲存在d:/resin1.1.3/doc/web-inf/classes/trade目錄下,代碼如下:(限於篇幅這裡沒按標準書寫,而採用不換行寫法,其他類同) package trade; import java.sql.*; public class conndb { String url="jdbc:inetdae:localhost";String login="user"; String password = "xxxxxx"; String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";String sConnStr = "jdbc:odbc:Dsnmysql"; Connection conn = null; ResultSet rs = null; public conndb() {try {Class.forName(sDBDriver); Connection conn = DriverManager.getConnection(url,login,password);} catch(java.lang.ClassNotFoundException e) {System.err.println("conndb(): " + e.getMessage ());}} Public/ResultSet/executeQuery(String/sql)/{rs=null;try{conn=DriverManager.getConnection(sConnStr); Statement stmt = conn.createStatement();rs = stmt.executeQuery(sql); } catch(SQLException ex) {System.err.println("aq.executeQuery: " + ex.getMessage());} return rs; }} 然後用javac編譯conndb.java產生與其同目錄的conndb.class檔案,在form_cl.jsp檔案中加入如下標籤即可建立與資料庫的串連 獲去表單提交的資料: String data1=request.getParameter("ptwbk"); String data2=request.getParameter("mmwbk ") String data3=request.getParameter("gdwbk ") String data4=request.getParameter("dxk ") String data5=request.getParameter("fxk ") String data5=request.getParameter("lbk ") 語句對資料庫進行操作 查詢資料記錄: String sql="select * from tab lename"; connbean.executeQuery(sql); 增加資料記錄: String sql="insert into tablename values('" + data1 + "','" +data2 +"','" +data3 + "','" + data4+ "'+"','" + data5+"','" + data6+'")";connbean.executeQuery(sql); 更改某條資料記錄: String sql="update tablename set data1='" + ptwbk + "',data2='" + mmvbk + "',data3='" +gdwbk + "' where ID='" + num + "'" ;connbean.executeQuery(sql) 刪除某條資料記錄: String sql="delete from tablename where ID='" +num+ "'" ; connbean.executeQuery(sql); ;將SQL語句處理的資料結果輸出 ResultSet rs = connbean.executeQuery(sql); While (rs.next()) {out.print(" "+rs.getString("ptwbk")+" ");out.print(" "+ rs.getString("mmvbk") + " ");out.print(" " + rs.getString("gdwbk") + " "); out.print(" " + rs.getString("dxk") + " ");out.print(" " + rs.getString("fxk") + " ");out.print(" " + rs.getString("lbk") + " ");} 關閉資料庫: rs.close();
6.三種電子商務網站設計技術綜述6.1主要特性: 可見下表 設計技術 運行平台 伺服器 開發程式 向外延展群組件 ASP Windows系列 IIS Vbscript/Jscript/Perl ActiveX PHP Unix系列, Novell,Windows Apache等許多伺服器 php Function JSP Unix系列, Novell,Windows Resin等許多伺服器 Java JavaBean 6.2串連資料庫的方法: 通過上述操作可看出,本文採用了三種操作MySql資料庫的方法,Asp採用直接驅動法,Php採用MySql函數法,Jsp採用JDBC-ODBC/JavaBean法 6.4可操作的主要資料庫 上述三種動態技術操作資料庫的方法,可操作Windows平台上的Access/MsSql/Foxpro/Informix/Oracle等資料庫,對Php和Jsp可操作Linux平台上的資料庫Postgres/Sybase/Oracle等. 6.5平台與代碼通用性 上述設計方法採用的是通用代碼方式,對PHP和JSP大部分代碼即可運行於Windows,又可運行於Linux;考慮MySql的許多方便的特點,本文以此為例,做了一些有益的工作 參考文獻: 1汪曉平.ASP網路開發技術.人民郵電出版社,2000.1 2 Leon Atkinson.PHP核心編程.清華大學出版社,2000.4 3石振國.多媒體通訊網頁的Java設計技術.