• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    ASP生成靜態(tài)網(wǎng)頁技術(shù)的實現(xiàn)

    2014-09-17 02:08:08劉繼良
    電腦知識與技術(shù) 2014年22期

    劉繼良

    摘要:闡述了網(wǎng)站靜態(tài)化的好處,介紹如何利用ASP、FSO和XMLHTTP生成靜態(tài)網(wǎng)頁的方法,利用該方法可以方便地創(chuàng)建靜態(tài)網(wǎng)站。

    關(guān)鍵詞:ASP;靜態(tài)網(wǎng)頁;ADODB.Stream

    中圖分類號:TP311 文獻標(biāo)識碼:A 文章編號:1009-3044(2014)22-5195-03

    當(dāng)今大型網(wǎng)站頁面都改用了靜態(tài)的頁面,這是因為靜態(tài)頁面可以提高瀏覽速度,減輕服務(wù)器的負(fù)擔(dān),方便搜索引擎收錄,網(wǎng)站更安全,靜態(tài)頁面從理論上講是沒有攻擊漏洞的,基于以上的好處所以現(xiàn)在知名、主流的大站基本上都靜下來了。

    ASP(Active Server Pages)是 Web 的服務(wù)器端腳本編寫環(huán)境,也是絕大多數(shù)從事網(wǎng)站開發(fā)人員很熟悉的編程環(huán)境。如何用asp生成靜態(tài)網(wǎng)頁一般有兩種方法:1使用FSO生成,2使用XMLHTTP生成。下面將綜合這兩種方法來實現(xiàn)靜態(tài)頁的生成。

    1 ASP生成靜態(tài)頁的方法

    我們用標(biāo)簽替換的方法生成靜態(tài)網(wǎng)頁,做一個模版頁mb.asp,生成靜態(tài)頁的時候直接把需要變化的部分的標(biāo)簽替換掉就行了。此例中我們把模板頁mb.asp設(shè)置兩個標(biāo)簽%title%和%content%。模板頁可以是靜態(tài)頁也可以是動態(tài)頁,但出于實際應(yīng)用的方便我們用動態(tài)頁做為模板頁。靜態(tài)網(wǎng)頁執(zhí)行頁面為do.asp里面是具體生成靜態(tài)頁的代碼。

    2 程序中用到相關(guān)技術(shù)的方法和屬性

    1) Request.ServerVariables

    Request.ServerVariables("Server_Name") 服務(wù)器的主機名、DNS地址或IP地址

    Request.ServerVariables("Server_Port") 接受請求的服務(wù)器端口號

    Request.ServerVariables("Path_Info") 客戶端提供的路徑信息

    2) ADODB.Stream對象

    mode 讀寫模式,可選值:1-讀,2-寫,3-讀寫

    type 數(shù)據(jù)類型,可選值:1-二進制,2-文本

    charset 編碼方式,可選值:utf-8,gb2312

    position 數(shù)據(jù)流位置,表示數(shù)據(jù)操作從這里開始,第一個位置的值為 0,不是 1。

    size 數(shù)據(jù)流大?。ㄗ止?jié))

    LoadFromFile 從文件讀取數(shù)據(jù)到 Stream 對象,Stream 對象原有內(nèi)容將被清空

    SaveToFile 將 Stream 對象數(shù)據(jù)保存為文件,第二個參數(shù):1-不允許覆蓋,2-覆蓋寫入

    Open 打開數(shù)據(jù)流

    Close 關(guān)閉數(shù)據(jù)流

    Read([長度]) 從 Stream 對象中讀取二進制數(shù)據(jù),不指定長度表示全部讀取

    ReadText([長度])從 Stream 對象中讀取文本數(shù)據(jù),不指定長度表示全部讀取

    Write(buffer) 將緩存數(shù)據(jù)寫入 Stream 對象

    WriteText(data, [option]) 將文本數(shù)據(jù)寫入 Stream 對象,第二個參數(shù):0-字符寫入,1-行寫入

    CopyTo(destStream, count) 將 Stream 對象的指定數(shù)據(jù)拷貝到 destStream

    3) MSXML2.XMLHTTP對象

    Open( bstrMethod, bstrUrl, varAsync, bstrUser, bstrPassword )

    bstrMethod: 數(shù)據(jù)傳送方式,即GET或POST。

    bstrUrl: 服務(wù)網(wǎng)頁的URL。

    varAsync: 是否同步執(zhí)行。缺省為True,即同步執(zhí)行,但只能在DOM中實施同步執(zhí)行。用中一般將其置為False,即異步執(zhí)行。

    bstrUser: 用戶名,可省略。

    bstrPassword:用戶口令,可省略。

    Send( varBody )

    varBody:指令集??梢允荴ML格式數(shù)據(jù),也可以是字符串,流,或者一個無符號整數(shù)數(shù)組。也可以省略,讓指令通過Open方法的URL參數(shù)代入。

    readyState 返回當(dāng)前請求的狀態(tài),只讀.

    3 生成靜態(tài)頁的主要代碼

    <%

    ‘函數(shù)部分

    Function GetPageUrlPath()‘獲取網(wǎng)站服務(wù)器地址函數(shù)

    SERVER_NAME = Request.ServerVariables("SERVER_NAME")

    SERVER_PORT = Request.ServerVariables("SERVER_PORT")

    PATH_INFO = Request.ServerVariables("PATH_INFO")

    PATH_TMP = Split(PATH_INFO,"/")

    PATH_INFO = Replace(PATH_INFO,PATH_TMP(Ubound(PATH_TMP)),"")

    URL = "http://" & SERVER_NAME

    If SERVER_PORT<>80 Then URL = URL & ":" & SERVER_PORT

    URL = URL & PATH_INFO

    GetPageUrlPath = URL

    End Function

    function getHTTPPage(url) ‘獲取發(fā)送請求網(wǎng)頁內(nèi)容的函數(shù)

    dim Http

    set Http=server.createobject("MSXML2.XMLHTTP")

    Http.open "GET",url,false ‘設(shè)定向目標(biāo)網(wǎng)頁發(fā)送請求的方式

    Http.send()

    if Http.readystate<>4 then

    exit function

    end if

    getHTTPPage=bytesToBSTR(Http.responseBody,"utf-8") ‘對獲取的內(nèi)容轉(zhuǎn)碼

    set http=nothing

    if err.number<>0 then err.Clear

    end function

    Function BytesToBstr(body,Cset) ‘轉(zhuǎn)換編碼函數(shù)

    dim objstream

    set objstream = Server.CreateObject("adodb.stream")

    objstream.Type = 1

    objstream.Mode =3

    objstream.Open

    objstream.Write body

    objstream.Position = 0

    objstream.Type = 2

    objstream.Charset = Cset

    BytesToBstr = objstream.ReadText

    objstream.Close

    set objstream = nothing

    End Function

    function creatfile(filePath,nr)‘創(chuàng)建文件函數(shù)

    Set objStream = Server.CreateObject("ADODB.Stream")

    objStream.Type = 2

    objStream.Mode = 3

    objStream.Open

    objStream.Charset = "utf-8"

    objStream.Position = objStream.Size

    objStream.WriteText=nr

    objStream.SaveToFile filePath,2

    objStream.Close

    Set objStream = Nothing

    end function

    '代碼部分

    SiteUrl = GetPageUrlPath() 獲取服務(wù)器地址

    PageURL=SiteUrl & "mb.asp?time="&now() 得到模板頁網(wǎng)址

    ReplaceContent = getHTTPPage(PageURL) 取得模板頁內(nèi)容

    title="這是標(biāo)題"

    content="這是內(nèi)容"

    ReplaceContent= replace(ReplaceContent,"%title%",title) 替換標(biāo)簽

    ReplaceContent = replace(ReplaceContent,"%content%",content)

    pagename=server.mappath("a.html") 要生成靜態(tài)頁的名字

    call creatfile(pagename,ReplaceContent) 調(diào)用函數(shù)創(chuàng)建靜態(tài)網(wǎng)頁

    response.Write "生成文件成功"

    4 結(jié)束語

    程序執(zhí)行的結(jié)果是在網(wǎng)站的根目錄下生成了一個a.html的網(wǎng)頁,通過這個例子我們可以將動態(tài)網(wǎng)站的首頁、列表頁和文章頁都變成靜態(tài)頁從而使網(wǎng)站更安全高效地運行。

    參考文獻:

    [1] 尚俊杰.網(wǎng)絡(luò)程序設(shè)計:ASP[M].北京:清華大學(xué)出版社,北京交通大學(xué)出版社,2009.

    [2] 廖福保.基于ASP無組件圖片上傳技術(shù)的研究[J].微計算機應(yīng)用,2006(1).

    克拉玛依市| 呼伦贝尔市| 柳州市| 夏河县| 临夏市| 大丰市| 荔浦县| 马关县| 方城县| 高雄市| 琼海市| 安远县| 玛多县| 英超| 探索| 当涂县| 建昌县| 台北市| 晋城| 临沧市| 崇义县| 夏邑县| 郴州市| 无为县| 望奎县| 云龙县| 高碑店市| 大竹县| 疏勒县| 比如县| 阳原县| 阿拉善左旗| 裕民县| 泰顺县| 寿阳县| 阿图什市| 吉木乃县| 博爱县| 永泰县| 富川| 民勤县|