史永哲
摘要:為解決ASP動態(tài)網(wǎng)頁調(diào)試平臺的安裝和配置較為復(fù)雜的問題,方便學(xué)習(xí)者使用,該文設(shè)計了一個能夠在線調(diào)試動態(tài)網(wǎng)頁編碼的B/S型動態(tài)網(wǎng)頁調(diào)試平臺。學(xué)習(xí)者可以在此平臺上進行ASP動態(tài)網(wǎng)頁的編寫和調(diào)試,并能夠運行和看到運行結(jié)果。該平臺用ASP技術(shù)實現(xiàn),使用方便,實用性強。
關(guān)鍵詞:B/S型;動態(tài)網(wǎng)頁;asp技術(shù);編碼調(diào)試
中圖分類號:TP391 文獻標(biāo)識碼:A 文章編號:1009-3044(2014)36-8777-02
最初的互聯(lián)網(wǎng)頁面都是靜態(tài)的,即網(wǎng)頁內(nèi)容固定,如要改變網(wǎng)頁內(nèi)容就要修改網(wǎng)頁的源代碼,并重新上傳。隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,出現(xiàn)了動態(tài)網(wǎng)頁技術(shù)。所謂動態(tài)網(wǎng)頁技術(shù),就是服務(wù)器端根據(jù)客戶端的不同請求動態(tài)產(chǎn)生網(wǎng)頁內(nèi)容,并發(fā)送到客戶端。Asp技術(shù)即是一種常見的動態(tài)網(wǎng)頁技術(shù)。ASP的全名是Active Server Pages,是一種在http協(xié)議下產(chǎn)生的可以和服務(wù)器進行交互的網(wǎng)頁技術(shù),利用Asp技術(shù)可以制作和運行動態(tài)的、交互的、高性能的WEB服務(wù)應(yīng)用程序。在國內(nèi),大約七成以上的網(wǎng)站都采用了asp動態(tài)網(wǎng)頁技術(shù)。動態(tài)網(wǎng)頁的制作調(diào)試一般要在iis服務(wù)器上進行,而iis組件的安裝和配置較為復(fù)雜,因此給這門課程的學(xué)習(xí)者造成了客觀上的困難,針對此問題,筆者設(shè)計了一種能在網(wǎng)頁上直接運行的asp代碼的動態(tài)網(wǎng)頁調(diào)試平臺,使用此平臺,學(xué)習(xí)者可以在網(wǎng)頁上完成一般的語句編寫和調(diào)試,并能得到代碼的運行結(jié)果。
1 Asp在線調(diào)試平臺的設(shè)計思路
目前,還沒有出現(xiàn)可以運行asp網(wǎng)頁的專門控件,因此,暫時不可能通過控件方式來實現(xiàn)asp動態(tài)網(wǎng)頁的在線運行調(diào)試。經(jīng)過不斷地思考和摸索,我們找到了一個能夠?qū)崿F(xiàn)這一功能的替代方法。該方法主要利用動態(tài)網(wǎng)頁本身能夠生成文件的功能,在服務(wù)器端動態(tài)地生成具有asp后綴的臨時文件,通過在服務(wù)器端運行臨時生成的動態(tài)網(wǎng)頁文件來查看代碼的運行效果,從而進行網(wǎng)頁編碼的調(diào)試。在具體實現(xiàn)上,我們采用多行文本輸入框textarea來輸入asp代碼,然后將textarea中的內(nèi)容生成一個給定名稱的臨時文件,并使這個文件具有“asp”后綴。將這個動態(tài)生成的asp文件存放在服務(wù)器的某個子目錄內(nèi),通過前面已經(jīng)預(yù)先給出的固定鏈接,將這個臨時生成的動態(tài)網(wǎng)頁運行起來。這樣,我們就能看到編寫的代碼在真實的網(wǎng)絡(luò)環(huán)境下運行的實際效果。運用這個方法,可以巧妙地實現(xiàn)asp動態(tài)網(wǎng)頁代碼的在線調(diào)試和運行。
2 平臺的實現(xiàn)方法
Asp在線調(diào)試平臺的實現(xiàn)主要有界面設(shè)計和底層代碼設(shè)計兩個部分。因為在線調(diào)試系統(tǒng)是運行在瀏覽器和服務(wù)器體系之上,每一次的提交都會打開一個獨立的網(wǎng)頁,而網(wǎng)頁多了不便于學(xué)習(xí)者使用,所以在界面計上我們盡量將調(diào)試和顯示功能放在同一個界面內(nèi),為此,我們在界設(shè)計上采用框架網(wǎng)頁的方法,即運用框架網(wǎng)頁,將多個獨立的網(wǎng)頁顯示在同一個界面上。在底層代碼設(shè)計上,我們采用Vbscript腳本語言作為后臺編碼設(shè)計語言,并運用“FileSystemObject”對象在服務(wù)器端動態(tài)生成給定名稱的asp動態(tài)網(wǎng)頁文件,然后根據(jù)預(yù)先給定的網(wǎng)頁鏈接來運行這個文件。
1) 基于框架網(wǎng)頁的界面設(shè)計
在主界面設(shè)計上,我們采用框架網(wǎng)頁設(shè)計的方法,每個框架的子窗體都是由單獨的頁面構(gòu)成的。這就便于我們通過網(wǎng)頁數(shù)據(jù)的傳遞及調(diào)用來實現(xiàn)我們的動態(tài)網(wǎng)頁調(diào)試功能。在框架選擇上,我們采用了左右窗口的框架類型,即在左面的框架內(nèi)顯示的是代碼編輯窗口,該窗體沒有別的內(nèi)容,全部內(nèi)容就是一個可以多行顯示并能進行文本編輯的textarea輸入框,用戶在這里能夠輸入要調(diào)試的編碼。在右面的框架內(nèi)是我們產(chǎn)生的臨時動態(tài)網(wǎng)頁顯示窗體,在這里顯示我們臨時生成的動態(tài)網(wǎng)頁。學(xué)習(xí)者在使用時,在左邊的窗口編寫動態(tài)網(wǎng)頁代碼,編寫完成后,點擊下面的“調(diào)試運行”鏈接,將編寫的代碼在右面的框架窗體中運行。
2) 平臺實現(xiàn)的關(guān)鍵代碼
在平臺的實現(xiàn)上,我們采用VBscript腳本語言進行編碼。左邊框架內(nèi)的網(wǎng)頁名稱為left.asp,left.asp中的textarea文本編輯框的名稱設(shè)為“aspcode”,右邊框架內(nèi)的網(wǎng)頁名稱為right.asp,臨時動態(tài)網(wǎng)頁的處理頁面是aspcode.asp。Left.asp將編譯運行請求提交給aspcode.asp頁面,由該頁面處理并生成臨時網(wǎng)頁文件。Left.asp提交完成后要回到原網(wǎng)頁,這樣才不會出現(xiàn)左邊網(wǎng)頁內(nèi)容的改變。右邊框架內(nèi)顯示臨時生成的動態(tài)網(wǎng)頁文件。Aspcode.asp網(wǎng)頁是最為關(guān)鍵的處理頁面,下面給出該文件內(nèi)的核心代碼,并加以說明。
<%
code=request.form("aspcode")‘將從left.asp傳來的數(shù)據(jù)賦給code變量。
session("code1")=code ‘設(shè)置標(biāo)志
function fsohtml() ‘定義生成動態(tài)網(wǎng)頁的子函數(shù)
filename=filename & ".asp" ‘設(shè)置動態(tài)生成的網(wǎng)頁名稱
set fso=Server.CreateObject("Scripting.FileSystemObject") ‘產(chǎn)生文件對象
set fout=fso.CreateTextFile(Server.Mappath("" & filename & "")) ‘用文件對象生成文件
fout.write thistext ‘給文件寫入內(nèi)容
Fout.close ‘關(guān)閉文件對象
set fout=nothing ‘撤消文件
set fso=nothing ‘撤消文件對象
end function ‘函數(shù)結(jié)束
fsohtml() ‘調(diào)用上面的函數(shù)
response.write("")‘返回endprint
%>
3) 在線使用方法
Asp在線調(diào)試平臺已經(jīng)由筆者前期編寫調(diào)試完成,上傳到西安電大的在線學(xué)習(xí)平臺上,支持在線使用。限于篇幅,該文中對該平臺的界面和布局不作展現(xiàn),有興趣的讀者可以訪問超鏈接http://222.91.161.202:8822/files/index4.asp打開該平臺的頁面,并可在打開的頁面上進行asp動態(tài)網(wǎng)頁的編碼輸入和調(diào)試??牲c擊頁面下方的“解釋運行”來執(zhí)行輸入的編碼,運行結(jié)果在網(wǎng)頁界面的右側(cè)顯示。也可以點擊“新窗口顯示運行結(jié)果”,在新建窗口中顯示運行結(jié)果。當(dāng)編碼中有錯誤時,則不能顯示正常的結(jié)果,此時網(wǎng)頁上會給出大致的錯誤原因和提示,使用者可根據(jù)網(wǎng)頁上的錯誤提示進行相關(guān)的修改,直到代碼能夠正常運行為止。
3 平臺運行的安全保障
由于asp動態(tài)網(wǎng)頁在線調(diào)試平臺采用在服務(wù)器中直接生成動態(tài)網(wǎng)頁的方式,所以容易被一些“不懷好意”的使用者用來作一些危險的嘗試。這些嘗試如果不加以防范將會對整個網(wǎng)站的運行產(chǎn)生不良影響。針對此問題,筆者從以下兩方面來解決平臺潛在的安全問題。
1) 將平臺中網(wǎng)頁的操作范圍限制在子目錄內(nèi)
動態(tài)網(wǎng)頁服務(wù)器的核心組件為IIS,IIS中提供了限制網(wǎng)頁向目錄外執(zhí)行“寫”操作的功能。我們采用在目錄內(nèi)限制網(wǎng)頁向外執(zhí)行寫操作的方法,來處理平臺隱藏的安全問題。具體方法是,在平臺的網(wǎng)站屬性中選擇“主目錄”,然后選擇“配置”,在打開的選項卡中點擊“選項”,在該選項卡中勾掉“啟用父路徑”復(fù)選框。這樣就可以將平臺中所有帶有“寫”功能的操作限制在該目錄內(nèi),就可以防范一些“危險”的操作擴大到目錄外。
2) 為每個用戶設(shè)置自有文件夾
我們采用為每個注冊用戶動態(tài)生成服務(wù)器文件夾的方式,來解決使用者互相干擾的問題。系統(tǒng)為每個注冊用戶生成一個目錄及相關(guān)文件,使用者在該目錄中進行網(wǎng)頁編碼和調(diào)試,所有的影響僅限于自己所在的目錄內(nèi),不會擴大,也不會影響他人。這樣就保障了網(wǎng)站運行的安全。
4 結(jié)束語
本文采用在服務(wù)器端生成臨時動態(tài)網(wǎng)頁的方式,設(shè)計了一個ASP動態(tài)網(wǎng)頁的在線調(diào)試平臺,供用戶在線調(diào)試asp代碼。該平臺運行速度快,使用方便,用戶不需要進行iis的安裝和處理相關(guān)配置,就可在線調(diào)試運行自己編寫的asp代碼。該平臺自調(diào)試完成并上傳互聯(lián)網(wǎng)后,主要供西安電大的學(xué)生使用。投入使用以來平臺運行穩(wěn)定,受到了學(xué)生的普遍認(rèn)可,同時取得了良好的教學(xué)效果。
參考文獻:
[1] 嚴(yán)為,吉曉民.制造業(yè)信息化中ASP應(yīng)用服務(wù)平臺結(jié)構(gòu)探討[J].機械設(shè)計,2013(5).
[2] 俞國燕,鄭時雄.基于ASP模式的產(chǎn)品設(shè)計支持系統(tǒng)開發(fā)[J].機床與液壓,2012(01).
[3] 周華民,張宜生,李德群.電子商務(wù)模式ASP及其在模具CAE軟件中的應(yīng)用[J].鍛壓機械,2011(6).endprint