ASP生成静态网页技术的实现-最新文档
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ASP生成静态网页技术的实现
当今大型网站页面都改用了静态的页面,这是因为静态页面可以提高浏览速度,减轻服务器的负担,方便搜索引擎收录,网站更安全,静态页面从理论上讲是没有攻击漏洞的,基于以上的好处所以现在知名、主流的大站基本上都静下来了。
ASP(Active Server Pages)是 Web 的服务器端脚本编写环境,也是绝大多数从事网站开发人员很熟悉的编程环境。
如何用asp生成静态网页一般有两种方法:1使用FSO生成,2使用XMLHTTP生成。
下面将综合这两种方法来实现静态页的生成。
1 ASP生成静态页的方法
我们用标签替换的方法生成静态网页,做一个模版页
mb.asp,生成静态页的时候直接把需要变化的部分的标签替换掉就行了。
此例中我们把模板页mb.asp设置两个标签%title%和%content%。
模板页可以是静态页也可以是动态页,但出于实际应用的方便我们用动态页做为模板页。
静态网页执行页面为do.asp里面是具体生成静态页的代码。
2 程序中用到相关技术的方法和属性
1) Request.ServerVariables
Request.ServerVariables("Server_Name")服务器的主机名、DNS地址或IP地址
Request.ServerVariables("Server_Port")接受请求的
服务器端口号
Request.ServerVariables("Path_Info")客户端提供的路径信息
2) ADODB.Stream对象
mode 读写模式,可选值:1-读,2-写,3-读写
type 数据类型,可选值:1-二进制,2-文本
charset 编码方式,可选值:utf-8,gb2312
position 数据流位置,表示数据操作从这里开始,第一个位置的值为 0,不是 1。
size 数据流大小(字节)
LoadFromFile 从文件读取数据到 Stream 对象,Stream 对象原有内容将被清空
SaveToFile 将 Stream 对象数据保存为文件,第二个参数:1-不允许覆盖,2-覆盖写入
Open 打开数据流
Close 关闭数据流
Read([长度])从 Stream 对象中读取二进制数据,不指定长度表示全部读取
ReadText([长度])从 Stream 对象中读取文本数据,不指定长度表示全部读取
Write(buffer)将缓存数据写入 Stream 对象
WriteText(data, [option])将文本数据写入 Stream 对
象,第二个参数:0-字符写入,1-行写入
CopyTo(destStream, count)将 Stream 对象的指定数据拷贝到 destStream
3) MSXML2.XMLHTTP对象
Open( bstrMethod, bstrUrl, varAsync, bstrUser,bstrPassword )
bstrMethod:数据传送方式,即GET或POST。
bstrUrl:服务网页的URL。
varAsync:是否同步执行。
缺省为True,即同步执行,但只能在DOM中实施同步执行。
用中一般将其置为False,即异步执行。
bstrUser:用户名,可省略。
bstrPassword:用户口令,可省略。
Send( varBody )
varBody:指令集。
可以是XML格式数据,也可以是字符串,流,或者一个无符号整数数组。
也可以省略,让指令通过Open 方法的URL参数代入。
readyState 返回当前请求的状态,只读.
3 生成静态页的主要代码
80 Then URL = URL & ":" & SERVER_PORT
URL = URL & PATH_INFO
GetPageUrlPath = URL
End Function
function getHTTPPage(url)‘获取发送请求网页内容的函数dim Http
set Http=server.createobject("MSXML2.XMLHTTP")
Http.open "GET",url,false ‘设定向目标网页发送请求的方式
Http.send()
if Http.readystate4 then
exit function
end if
getHTTPPage=bytesToBSTR(Http.responseBody,"utf-8")‘对获取的内容转码
set http=nothing
if err.number0 then err.Clear
end function
Function BytesToBstr(body,Cset)‘转换编码函数
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)‘创建文件函数
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()’ 获取服务器地址PageURL=SiteUrl & "mb.asp?time="&now()’得到模板
页网址
ReplaceContent = getHTTPPage(PageURL)’取得模板页内容
title="这是标题"
content="这是内容"
ReplaceContent= replace(ReplaceContent,"%title%",title)’替换标签
ReplaceContent = replace(ReplaceContent,"%content%",content)
pagename=server.mappath("a.html")’要生成静态页的名字
call creatfile(pagename,ReplaceContent)’调用函数创建静态网页
response.Write "生成文件成功"
4 结束语
程序执行的结果是在网站的根目录下生成了一个a.html的网页,通过这个例子我们可以将动态网站的首页、列表页和文章页都变成静态页从而使网站更安全高效地运行。