楊文彬 (太原師范學(xué)院計(jì)算機(jī)中心,山西太原030012)
ASP(Active Server Pag)是用來創(chuàng)建在Web服務(wù)器端運(yùn)行的動(dòng)態(tài)網(wǎng)頁(yè)技術(shù),是目前發(fā)展最成熟的語(yǔ)言,相關(guān)漏洞BUG都已經(jīng)被發(fā)現(xiàn)且都已經(jīng)有了相關(guān)補(bǔ)丁,所以安全性是可以信賴的[1-4]。同時(shí),由于是微軟的產(chǎn)品,服務(wù)器只需要Windows平臺(tái)即可,維護(hù)簡(jiǎn)單,買主機(jī)成本低。下面,筆者設(shè)計(jì)了一個(gè)基于ASP的網(wǎng)上書店管理系統(tǒng)。
使用ASP編寫服務(wù)器端腳本代碼,可以方便地創(chuàng)建復(fù)雜、實(shí)用的Web應(yīng)用程序。如果希望將訪問者在網(wǎng)頁(yè)表單中填寫的信息存儲(chǔ)到站點(diǎn)的數(shù)據(jù)庫(kù)中,或者希望根據(jù)訪問者的選擇向客戶端瀏覽器輸出不同內(nèi)容的網(wǎng)頁(yè),則ASP是一個(gè)非常優(yōu)秀的解決方案。
ASP是一種在 “服務(wù)器”上跑的程序[5-6],當(dāng)瀏覽者使用到所設(shè)計(jì)的ASP功能時(shí),這段程序并不是直接下載到瀏覽者的計(jì)算機(jī)上面執(zhí)行,而是在存放網(wǎng)頁(yè)的服務(wù)器上面將該程序跑完,等到結(jié)果出現(xiàn)后,再將結(jié)果輸出成一般網(wǎng)頁(yè)的HTML面貌傳給瀏覽者。這樣的好處是不需考慮瀏覽者的瀏覽器不同或不相符,而無法執(zhí)行所設(shè)計(jì)的程序,因?yàn)樗械某绦蛑苯釉诜?wù)器上執(zhí)行,只要將結(jié)果傳回瀏覽者端就可以了。
ASP還有一個(gè)很強(qiáng)的特性,就是它可以和數(shù)據(jù)庫(kù)連結(jié)。因?yàn)閿?shù)據(jù)庫(kù)可以存儲(chǔ)注冊(cè)信息、BBS資源等等,使得采用ASP技術(shù)的網(wǎng)頁(yè)是 “雙向”互動(dòng)的,不僅只是針對(duì)瀏覽者,對(duì)設(shè)計(jì)者也是種互動(dòng)。因?yàn)樗梢宰尀g覽者依需要檢索結(jié)果,也可以讓設(shè)計(jì)者搜集瀏覽者的相關(guān)信息,例如會(huì)員資料、廣告輪播統(tǒng)計(jì)等等……,而不是只有特效般的單向互動(dòng)。
圖1 網(wǎng)上書店管理系統(tǒng)總體架構(gòu)
在進(jìn)行網(wǎng)絡(luò)應(yīng)用程序總體結(jié)構(gòu)設(shè)計(jì)時(shí),應(yīng)盡量從方便客戶、提高效率、運(yùn)行可靠的角度來考慮其整體功能的實(shí)現(xiàn)。網(wǎng)上書店管理系統(tǒng)分為前臺(tái)銷售管理系統(tǒng) (網(wǎng)站)和后臺(tái)管理系統(tǒng),如圖1所示。該系統(tǒng)具有如下特點(diǎn):①預(yù)設(shè)欄目?jī)?nèi)容,直觀易用。預(yù)設(shè)多種商品類型、商品欄目和內(nèi)容欄目,直觀易用 。②可視化模版引擎。采用可視化模版引擎,模版修改直觀靈活,模版插件可通過后臺(tái)可視界面選擇設(shè)置??蓾M足用戶的個(gè)性化建站需求。③靈活的商品類型設(shè)置。針對(duì)不同商品類型設(shè)置不同的發(fā)布參數(shù),并可在訂購(gòu)時(shí)選擇,兼容各類商品銷售;支持附屬配件、捆綁套餐等特殊商品類型。④任意創(chuàng)建頻道。具有單頁(yè)、文章、下載、圖文、商店、表單等頻道類型,可任意創(chuàng)建多個(gè)頻道欄目;不同欄目可設(shè)置使用不同的模版,網(wǎng)站界面更豐富多彩。⑤全站內(nèi)容插件靈活調(diào)用。⑥完備的內(nèi)容管理功能。后臺(tái)各頻道均具有分類檢索、搜索、自定排序方式、批量處理、轉(zhuǎn)移欄目和類別等完備的內(nèi)容管理功能。⑦ 自定義用戶類型,靈活設(shè)置權(quán)限。自定義創(chuàng)建多種用戶類型,每種用戶類型、每個(gè)用戶均可設(shè)置不同的閱讀權(quán)限、操作權(quán)限和價(jià)格級(jí)別。
由于網(wǎng)上書店管理系統(tǒng)所涉及數(shù)據(jù)量相對(duì)來說不算多,所以筆者選擇Access數(shù)據(jù)庫(kù)就足以滿足整個(gè)系統(tǒng)的要求,部分表結(jié)構(gòu)如表1和表2所示。
表1 會(huì)員表 (用來存儲(chǔ)會(huì)員的信息)
表2 管理員表 (用來存儲(chǔ)管理員的信息)
ASP.NET在System.Web.Configuration命名空間中提供了WebConfigurationManager類,用來在運(yùn)行時(shí)編程讀取和寫入配置設(shè)置。除此之外,WebConfigurationManager類還提供了其他幾個(gè)成員用于讀取或設(shè)置其他配置項(xiàng)。
1)AppSettings屬性 提供訪問添加到 〈appSettings〉節(jié)中的自定義信息。
2)ConnectionStrings屬性 提供訪問 〈connection-Strings〉配置項(xiàng)中的信息。
3)OpenWebConfiguration()方法 為指定的 Web應(yīng)用程序返回配置對(duì)象。
4)OpenMachineConfiguration()方法 返回對(duì)machine.config文件進(jìn)行訪問的配置對(duì)象。
在 〈appSettings〉中允許開發(fā)人員保存自己的配置設(shè)置,在配置文件中保存自定義設(shè)置信息是非常有用的,可以集中化被多個(gè)頁(yè)面使用的配置設(shè)置,可以快速切換不同類型的操作,為變量設(shè)置初始值等等。
在 〈appSettings〉中,可以使用 〈add〉元素來添加一個(gè)鍵和一個(gè)值,新建一個(gè)名為appSetting-Demo的網(wǎng)站,在 〈appSettings〉配置節(jié)中添加如下的配置代碼:
嵌套的配置設(shè)置是可以在一個(gè)應(yīng)用程序中同時(shí)應(yīng)用多個(gè)Web.config文件,ASP.NET使用多層次的配置系統(tǒng),允許開發(fā)人員在不同的層次配置設(shè)置。比如在FirstWebSite網(wǎng)站的根目錄中,有一個(gè)Web.config配置文件,該文件提供了整個(gè)網(wǎng)站都可用的配置信息,為了演示嵌套配置設(shè)置,在該網(wǎng)站中新添加一個(gè)文件夾,右擊FirstWebSite項(xiàng)目名稱,選擇 “新建文件夾”菜單項(xiàng),命名為Customer,在Customer下添加一個(gè)customer.aspx的Web Form,接下來右擊Customer文件夾,選擇添加新項(xiàng),在彈出的添加新項(xiàng)窗口中選擇 “Web配置文件”項(xiàng)。
下面以圖書管理模塊為例,來分析網(wǎng)上書店管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。
ASP允許2種類型的數(shù)據(jù)庫(kù)訪問形式,以ADO形式訪問的Access數(shù)據(jù)庫(kù)和ODBC數(shù)據(jù)源。
ASP選項(xiàng)設(shè)定用于選擇每頁(yè)顯示的數(shù)據(jù)格式、指定腳本代碼的語(yǔ)言、Session的過期時(shí)間等。
HTML屬性設(shè)置主要用來設(shè)置標(biāo)題欄文字、字符集、字體字號(hào)、樣式表、頁(yè)面背景等。設(shè)置方法很簡(jiǎn)單,單擊 ‘〈〉HTML'選項(xiàng)卡,在 ‘Title'框中輸入 ‘網(wǎng)上書店圖書管理系統(tǒng)',‘Charset'設(shè)置為gb2312,在這里引入外部CSS文件指定頁(yè)面樣式,故不對(duì)字體字號(hào)進(jìn)行設(shè)置,單擊CSS右邊的按鈕,選擇一個(gè)已經(jīng)事先編寫好的CSS樣式表文件forum.css。
接下來設(shè)置用于顯示數(shù)據(jù)列表的表格的顯示效果,點(diǎn)擊 ‘TABLE'選項(xiàng)卡,將表格寬度Width設(shè)為96%、Cell padding設(shè)為2、Border設(shè)為0、Cell Spacing設(shè)為2,再修改Background Color為#9999CC、表頭背景Header Color為#669900、表頭文字顏色為#FFFFFF,再將Row color設(shè)為#FFFFFF,選上 ‘Alternate row color'并設(shè)置其顏色為#F5F5F5,即數(shù)據(jù)列表以白色和淡灰色2種顏色輪換做為背景,設(shè)置完后下面的預(yù)覽窗口會(huì)即時(shí)顯示出表格的顯示效果。
ASP.NET支持2種類型的加密選項(xiàng),一種是RSA,一種是DPAPI。對(duì)ASP.NET應(yīng)用程序來說,加密和解密是完全透明的,假如用戶訪問一個(gè)加密的配置塊,ASP.NET將自動(dòng)完成解密的工作,然后向代碼返回純文本設(shè)置。同樣的,如果以編程的方式修改了設(shè)置項(xiàng),然后保存,加密工作也會(huì)自動(dòng)的進(jìn)行完成。如新建一個(gè) ASP.NET網(wǎng)站,命名為encryptionConfig。進(jìn)入 Web.config配置文件,在〈appSettings〉配置節(jié)中添加如下的設(shè)置項(xiàng),代碼如下所示:
由于ASPMaker生成的ASP程序默認(rèn)情況下允許任何一個(gè)訪問者對(duì)數(shù)據(jù)庫(kù)進(jìn)行添加、修改、刪除操作,因此需要對(duì)程序進(jìn)行相應(yīng)的安全設(shè)置,選擇 ‘Use Existing Table',并在頁(yè)面下邊的 ‘Table'下拉框中選擇保存用戶信息的表operators, ‘User Name Field'選擇為字段 ‘用戶名', ‘Password Field'為字段 ‘密碼',選擇 ‘Create virtual directory at http://localhost/aaaa'表示生成程序后ASPMaker將自動(dòng)將程序發(fā)布到本機(jī)服務(wù)器上的虛擬目錄 ‘a(chǎn)aaa'(‘a(chǎn)aaa'是筆者取的ASPMaker項(xiàng)目文件名)。
該網(wǎng)上書店管理系統(tǒng)全部采用模塊化程序來進(jìn)行設(shè)計(jì),具有良好的系統(tǒng)安全性、可操作性和通用性。實(shí)踐證明,該網(wǎng)上書店管理系統(tǒng)能有效地實(shí)現(xiàn)圖書銷售全過程管理。
[1]紀(jì)鶴.基于ASP的最I(lǐng)N發(fā)型電子商務(wù)網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)[J].今日湖北 (理論版),2007(5):155-157.
[2]任建敏,楊樺.基于ASP的網(wǎng)上書店的設(shè)計(jì)與實(shí)現(xiàn)[J].湖南工業(yè)職業(yè)技術(shù)學(xué)院學(xué)報(bào),2007(3):132-136.
[3]黃武鋒.ASP網(wǎng)上書店的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦編程技巧與維護(hù),2008(15):115-118.
[4]鐘秀玉.基于ASP的網(wǎng)上商品銷售系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].吉林化工學(xué)院學(xué)報(bào),2002(3):163-168.
[5]李志義,黃成業(yè).網(wǎng)上論壇的一種設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代圖書情報(bào)技術(shù),2004(1):171-173.
[6]李志義,吳創(chuàng)城.中小學(xué)校成績(jī)查詢系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].中國(guó)教育信息化,2008(22):120-123.