電子商務(wù)網(wǎng)站平臺(tái)3p設(shè)計(jì)技術(shù)與網(wǎng)絡(luò)數(shù)據(jù)庫
摘要:本文分別利用ASP,PHP,JSP這三個(gè)動(dòng)態(tài)網(wǎng)站技術(shù),使用跨Windows和Linux平臺(tái)的同一個(gè)數(shù)據(jù)庫MySql,采用統(tǒng)一的三種格式的表單界面,借用三種連接數(shù)據(jù)庫的方法,在三種不同特點(diǎn)的WEB服務(wù)器環(huán)境下,給出了電子商務(wù)網(wǎng)站設(shè)計(jì)中的主要的前臺(tái)和后臺(tái)程序。 關(guān)鍵詞:電子商務(wù)網(wǎng)站,網(wǎng)絡(luò)數(shù)據(jù)庫,ASP,PHP,JSP,服務(wù)器1. 引言: 目前動(dòng)態(tài)網(wǎng)站設(shè)計(jì)技術(shù)主要有:利用Perl/C++/Delphi等開發(fā)的CGI,兩種有名的API-ISAPI/NSAPI,還有ColdFusion,以及最近幾年流行起來的3p技術(shù)-ASP,PHP,JSP(據(jù)Internet上有關(guān)網(wǎng)站統(tǒng)計(jì)約有近百種); ASP-Ative Server Page,由微軟公司開發(fā) ,是一個(gè)WEB服務(wù)器端的開發(fā)環(huán)境,主要采用腳本語言VBScript(或Javascript/perl等)作為自己的開發(fā)語言,可用ODBC或直接驅(qū)動(dòng)法訪問Window平臺(tái)的數(shù)據(jù)庫。PHP-Person Server Page ,是由Rasmus個(gè)人創(chuàng)立的一種跨平臺(tái)的服務(wù)器端的嵌入式腳本語言. 它大量地借用C,Java和Perl語言的語法, 并耦合PHP自己的特性,.是一種很有個(gè)性的網(wǎng)站開發(fā)語言,它支持目前絕大多數(shù)數(shù)據(jù)庫。JSP-Java Server Page , 是Sun公司推出的新一代站點(diǎn)開發(fā)語言,Sun 公司除Java 應(yīng)用程序 和 Java Applet 之外,又創(chuàng)立了JSP,其可以在Serverlet和JavaBean的支持下,完成功能強(qiáng)大的站點(diǎn)程序開發(fā),特別是有許多訪問數(shù)據(jù)庫的方法。在電子商務(wù)平臺(tái)設(shè)計(jì)中,主要需要解決"網(wǎng)站結(jié)構(gòu)的設(shè)計(jì)","注冊(cè)界面","交易界面","后臺(tái)數(shù)據(jù)庫",以及"配套模塊"諸如購物/用戶/論壇/反饋/搜索/會(huì)話等設(shè)計(jì);考慮篇幅,本文只給出統(tǒng)一的前臺(tái)界面及后臺(tái)數(shù)據(jù)庫的3p設(shè)計(jì)方法;可以說ASP,PHP,JSP與網(wǎng)絡(luò)數(shù)據(jù)庫的操作是電子商務(wù)網(wǎng)站平臺(tái)設(shè)計(jì)的堅(jiān)強(qiáng)基石。
2. 構(gòu)建三種設(shè)計(jì)技術(shù)的運(yùn)行環(huán)境
2 .1構(gòu)建ASP的運(yùn)行環(huán)境:NT5.0Server,IIS5.0 ,ASP3.0 。 安裝Windows2000Server(NT5.0Server)時(shí)選擇IIS5.0有關(guān)選項(xiàng)。安裝完后ASP3.0便內(nèi)嵌于IIS5.0中。測試ASP:啟動(dòng)瀏覽器,在地址欄處輸http://127.0.0.1:80/default.asp,若瀏覽到IIS服務(wù)器的ASP歡迎頁面,說明安裝成功
2.2構(gòu)建PHP4的運(yùn)行環(huán)境:NT5.0Server, Apache1.3.12 php4.0 安裝支持PHP的web服務(wù)器Apache1.3.12,將Apache服務(wù)器壓縮文件解壓縮,根據(jù)提示進(jìn)行整個(gè)安裝過程,自己選擇安裝到目錄d:\apache下。安裝PHP4,將PHP4壓縮文件解壓縮到d:\php4即可,同時(shí)將其中的php.ini-dist文件拷貝到winnt目錄中,將文件更名為php.ini,打開該文件將其中extension_dir 設(shè)置為:d:/php4,并加載擴(kuò)展模塊:將文件中含有;extention=*.dll的各項(xiàng)前面的";"號(hào)去掉即可;修改設(shè)置Aphache服務(wù)器,用文本編輯器編輯目錄d:\aphache目錄下的子目錄conf下名為httpd.conf的文本文件,首先將"#ServerName *"這一行下加入"ServerName http://127.0.0.1/"; ,其次將"Port 80"改為"Port 81(或其他與IIS5.0不沖突的端口)",再其次設(shè)置更改Apache虛擬目錄,將"Documentroot "d:/Apache/htdocs""改為Documentroot "d:/trade"(該目錄即是電子商務(wù)網(wǎng)站目錄,可用任意方法建立目錄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目錄下,用如何文本編輯器,生成擴(kuò)展名為.php(或phtml)的文件test.php,在文件中輸入如下php代碼,存盤后,啟動(dòng)Apache,接著你在瀏覽器中輸入http://127.0.0.1:81/test.php,若看到php的版本和擴(kuò)展模塊等信息,說明環(huán)境安裝設(shè)置成功。
2.3構(gòu)建JSP的運(yùn)行環(huán)境:NT5.0Server,Resin1.13, jdk1.3 安裝Java編譯器jdk1.3:運(yùn)行jdk1_3-win.exe,按照提示完成安裝即可,將其安裝在d:\java1.3目錄,也可安裝在其他目錄。 設(shè)置系統(tǒng)環(huán)境參數(shù):控制面板/系統(tǒng)/環(huán)境頁中選擇path 參數(shù)加入d:\jdk1.3\bin;增加新的環(huán)境參數(shù)classpath=d:\jdk1.3\lib\tools.jar;d:\jdk1.3\lib\dt.jar;,然后重新啟動(dòng)計(jì)算機(jī)即可安裝支持JSP的web服務(wù)器Resin1.1.3,將RESIN-1.1.3.zip釋放為d:\Resin1.1.3 即可。配置服務(wù)器端口,打開d:/resin1.1.3/conf/目錄下的resin.conf文件在
8080
標(biāo)簽處將端口設(shè)置為82(在我的NT5.0上裝有三個(gè)服務(wù)器,這樣三個(gè)服務(wù)器的端口分別為IIS :80;Apache:81;Resin:82其實(shí)也可設(shè)置為其他互不沖突的端口號(hào)). 測試JSP:啟動(dòng)Resin服務(wù)器,啟動(dòng)瀏覽器,在地址欄處輸http://127.0.0.1:82/,若瀏覽到Resin服務(wù)器的JSP歡迎頁面,說明安裝成功
3生成三種格式的動(dòng)態(tài)表單頁面 為了通用,這里采用可能用到的表單對(duì)象為例,至于下面設(shè)計(jì)具體數(shù)據(jù)表用到的字段,只要轉(zhuǎn)成給出的表單域相應(yīng)對(duì)象即可.
3.1用ASP動(dòng)態(tài)生成與數(shù)據(jù)庫進(jìn)行數(shù)據(jù)交流的操作表單: form.asp: 生成表單域頭: 生成普通文本: 生成密碼文本: 生成滾動(dòng)文本: 生成單選: 生成復(fù)選:&n
bsp;生成列表框: 生成提交按鈕 生成重填按鈕 生成表單域尾
3.2用PHP動(dòng)態(tài)生成與數(shù)據(jù)庫進(jìn)行數(shù)據(jù)交流的操作表單: form.php 生成表單域頭:"?> 生成普通文本:"?> 生成密碼文本:"?> 生成滾動(dòng)文本:"?> 生成單選:"?> 生成復(fù)選:"?> 生成列表框:網(wǎng)絡(luò)數(shù)據(jù)庫Asp技術(shù)Php技術(shù)Jsp技術(shù)網(wǎng)站設(shè)計(jì) "?> 生成提交按鈕 "?> 生成重填按鈕"?> 生成表單域尾"?>
3.3用JSP動(dòng)態(tài)生成與數(shù)據(jù)庫進(jìn)行數(shù)據(jù)交流的操作表單 form.jsp 生成表單域頭: 生成普通文本: 生成密碼文本: 生成滾動(dòng)文本: 生成單選: 生成復(fù)選: 生成列表框: 生成提交按鈕 生成重填按鈕 生成表單域尾
4設(shè)計(jì)用于存儲(chǔ)商務(wù)網(wǎng)站交互數(shù)據(jù)的MySql數(shù)據(jù)庫
4.1啟動(dòng)MySql數(shù)據(jù)庫服務(wù)器(MySql的安裝及ODBC驅(qū)動(dòng)程序的安裝與設(shè)置請(qǐng)參閱相關(guān)書籍) 可在NT5.0下用啟動(dòng)服務(wù)法/NET命令法/命令窗口鍵入MySqld-shareware法,啟動(dòng)MySql數(shù)據(jù)庫服務(wù)器,啟動(dòng)數(shù)據(jù)庫服務(wù)器后,在d:\mysql\bin>提示符下鍵入mysql-h 127.0.0.1 -u root 即可出現(xiàn)mysql>提示符,從這開始即可進(jìn)行對(duì)MySql數(shù)據(jù)庫的各種操作。若要退出可鍵入quit/exit,若要關(guān)閉數(shù)據(jù)庫服務(wù)器,可在d:\mysql\bin>提示符下鍵mysqladmin -u root shutdown 4.2建立MySql數(shù)據(jù)庫 在MySql數(shù)據(jù)庫的提示符mysql>鍵入Create database tradedb ;(或go)
4.2.建立MySql數(shù)據(jù)庫表 這里以商務(wù)網(wǎng)站中常用的幾種數(shù)據(jù)表為例,主要用到的數(shù)據(jù)表和生成數(shù)據(jù)表的SQL代碼如下:(這里的數(shù)據(jù)表字段只要分別對(duì)應(yīng)上述表單域?qū)ο蠹纯蓪?shí)際操作,數(shù)據(jù)表統(tǒng)一用tablename表示) 客戶登錄管理數(shù)據(jù)表 CREATE TABLE users ( ID int not null auto_increment, UserName varchar(30) not null, Password varchar(20) not null ) 客戶信息數(shù)據(jù)表 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 ) 客戶定購商品數(shù)據(jù)表 CREATE TABLE catalog ( ProductId int not null , Name varchar(64) not null, Price float(6,2) not null, Description text null )
5設(shè)計(jì)處理表單數(shù)據(jù)的3p程序
5.1設(shè)計(jì)處理表單數(shù)據(jù)的ASP程序 form_cl.asp 建立與數(shù)據(jù)庫的連接:這里采用直接驅(qū)動(dòng)法 Set conn = Server.CreateObject("ADODB.Connection"); conn.open "driver={MySQL};server=localhost;uid=user;pwd=xxxxxx;database=tradedb" 獲取表單提交的數(shù)據(jù): data1=request("ptwbk");data2=request("mmwbk");data3=request("gdwbk") data4=request("dxk");data5=request("fxk");data6=request("lbk") 用SQL語句對(duì)數(shù)據(jù)庫進(jìn)行操作 查詢數(shù)據(jù)記錄: sql="select * from tablename" ;set rs=conn.execute(sql) " 增加數(shù)據(jù)記錄: sql="insert into tablename(ptwbk,mmwbk,gdwbk,dxk,fxk,lbk) values('data1','data2','data3','data4','data5', 'data5')"; set rs=conn.execute(sql) 更改某條數(shù)據(jù)記錄: sql="update tablename set data1="request(ptwbk)", where ID="num"; set rs=conn.execute(sql) 刪除某條數(shù)據(jù)記錄: sql="delete from tablename where ID="num";set rs=conn.execute(sql) 將SQL語句處理的數(shù)據(jù)結(jié)果輸出 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 "
" 關(guān)閉數(shù)據(jù)庫: rs.close;conn.Close
5.2設(shè)計(jì)處理表單數(shù)據(jù)的PHP程序 form_cl.php 建立與數(shù)據(jù)庫的連接:這里采用PHP的MySql函數(shù)法(也可用ODBC函數(shù)法) $conn=odbc_connect("localhost","user","xxxxxx"); 選擇數(shù)據(jù)庫: mysql_select_db("tradedb","$conn"); 獲去表單提交的數(shù)據(jù): $data1=$ptwbk; $data2=$mmwbk; $data3=$gdwbk; $data4=$dxk; $data5=$fxk;
$data6=$lbk; 用SQL語句對(duì)數(shù)據(jù)庫進(jìn)行操作 查詢數(shù)據(jù)記錄: $sql="select * from tablename" ;$result=odbc_do($conn,$sql); 增加數(shù)據(jù)記錄: $sql="insert into tablename(ptwbk,mmwbk,gdwbk,dxk,fxk,lbk) values('$data1','$data2','$data3','$data4','$data5','$data6')";$result=odbc_do($conn,$sql); 更改某條數(shù)據(jù)記錄: $sql="update tablename set $data1=ptwbk where ID=num" $result=odbc_do($conn,$sql); 刪除某條數(shù)據(jù)記錄:$sql="delete from tablename where ID=num";$result=odbc_do($conn,$sql); 將SQL語句處理的數(shù)據(jù)結(jié)果輸出 odbc_result_all($result,"border=1"); 關(guān)閉數(shù)據(jù)庫: odbc_close($conn);
5.3設(shè)計(jì)處理表單數(shù)據(jù)的JSP程序 form_cl.jsp 建立與數(shù)據(jù)庫的連接:這里采用JDBC-ODBC橋生成JavaBean法 創(chuàng)建一個(gè)JavaBean命名為conndb.java,并保存在d:/resin1.1.3/doc/web-inf/classes/trade目錄下,代碼如下:(限于篇幅這里沒按標(biāo)準(zhǔn)書寫,而采用不換行寫法,其他類同) 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文件中加入如下標(biāo)簽即可建立與數(shù)據(jù)庫的連接 獲去表單提交的數(shù)據(jù): String data1=request.getParameter("ptwbk"); String data2=request.getParameter("mmwbk ") String data3=request.getP
arameter("gdwbk ") String data4=request.getParameter("dxk ") String data5=request.getParameter("fxk ") String data5=request.getParameter("lbk ") 語句對(duì)數(shù)據(jù)庫進(jìn)行操作 查詢數(shù)據(jù)記錄: String sql="select * from tablename"; connbean.executeQuery(sql); 增加數(shù)據(jù)記錄: String sql="insert into tablename values('" + data1 + "','" +data2 +"','" +data3 + "','" + data4+ "'+"','" + data5+"','" +
data6+'")";connbean.executeQuery(sql); 更改某條數(shù)據(jù)記錄: String sql="update tablename set data1='" + ptwbk + "',data2='" + mmvbk + "',
data3='" +gdwbk + "' where ID='" + num + "'" ;connbean.executeQuery(sql) 刪除某條數(shù)據(jù)記錄: String sql="delete from tablename where ID='" +num+ "'" ; connbean.executeQuery(sql); 將SQL語句處理的數(shù)據(jù)結(jié)果輸出 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") + "
");} 關(guān)閉數(shù)據(jù)庫: rs.close();
6三種電子商務(wù)網(wǎng)站設(shè)計(jì)技術(shù)綜述
6.1主要特性: 可見下表 設(shè)計(jì)技術(shù) 運(yùn)行平臺(tái) 服務(wù)器 開發(fā)程序 擴(kuò)展組件 ASP Windows系列 IIS Vbscript/Jscript/Perl ActiveX PHP Unix系列, Novell,Windows Apache等許多服務(wù)器 php Function JSP Unix系列, Novell,Windows Resin等許多服務(wù)器 Java JavaBean
6.2連接數(shù)據(jù)庫的方法: 通過上述操作可看出,本文采用了三種操作MySql數(shù)據(jù)庫的方法,Asp采用直接驅(qū)動(dòng)法,Php采用MySql函數(shù)法,Jsp采用JDBC-ODBC/JavaBean法
6.3網(wǎng)站結(jié)構(gòu)設(shè)計(jì) 考慮篇幅,本文只給出了Widows平臺(tái)上,電子商務(wù)網(wǎng)站設(shè)計(jì)中的主要環(huán)節(jié)的代碼設(shè)計(jì),對(duì)于Linux平臺(tái)、網(wǎng)站結(jié)構(gòu)、各個(gè)功能模塊設(shè)計(jì)等論題,作者已經(jīng)有兩篇這方面的論文在核心刊物上待發(fā)表,這里不便公開.
6.4可操作的主要數(shù)據(jù)庫 上述三種動(dòng)態(tài)技術(shù)操作數(shù)據(jù)庫的方法,可操作Windows平臺(tái)上的Access/MsSql/Foxpro/Informix/Oracle等數(shù)據(jù)庫,對(duì)Php和Jsp可操作Linux平臺(tái)上的數(shù)據(jù)庫Postgres/Sybase/Oracle等.
6.5平臺(tái)與代碼通用性 上述設(shè)計(jì)方法采用的是通用代碼方式,對(duì)PHP和JSP大部分代碼即可運(yùn)行于Windows,又可運(yùn)行于Linux;考慮MySql的許多方便的特點(diǎn),本文以此為例,做了一些有益的工作 參考文獻(xiàn): 1汪曉平.ASP網(wǎng)絡(luò)開發(fā)技術(shù).人民郵電出版社,2000.1 2 Leon Atkinson.PHP核心編程.清華大學(xué)出版社,2000.4 3石振國.多媒體通信網(wǎng)頁的Java設(shè)計(jì)技術(shù).
【電子商務(wù)網(wǎng)站平臺(tái)3p設(shè)計(jì)技術(shù)與網(wǎng)絡(luò)數(shù)據(jù)庫】相關(guān)文章:
電子商務(wù)網(wǎng)站平臺(tái)3p設(shè)計(jì)技術(shù)與網(wǎng)絡(luò)數(shù)據(jù)庫08-06
電子商務(wù)拯救傳統(tǒng)小店 選擇網(wǎng)站平臺(tái)最艱難08-05
電子商務(wù)驅(qū)動(dòng)網(wǎng)絡(luò)技術(shù)08-05
網(wǎng)絡(luò)平臺(tái)培訓(xùn)心得08-13
電子商務(wù)平臺(tái)的有效性設(shè)計(jì)理論08-06
網(wǎng)絡(luò)借貸平臺(tái)廣告標(biāo)語08-15
咨詢求助網(wǎng)站平臺(tái)宣傳標(biāo)語12-30