• 
    

    
    

      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).

      宜川县| 儋州市| 南投市| 博罗县| 木兰县| 郁南县| 会理县| 九江县| 砚山县| 杭锦后旗| 朝阳市| 临澧县| 清原| 黄浦区| 夏河县| 株洲市| 南昌市| 奉新县| 马关县| 乌拉特中旗| 阳春市| 横峰县| 珲春市| 东宁县| 灵武市| 晋州市| 大方县| 广汉市| 工布江达县| 特克斯县| 呼图壁县| 山阳县| 犍为县| 九江县| 五家渠市| 新疆| 普兰店市| 通渭县| 灵宝市| 东台市| 滕州市|