ASP动态转静态解决技术
网页生成静态Html文件有许多好处,比如生成html网页有利于被搜索引擎收录,不仅被收录的快还收录的全.前台脱离了数据访问,减轻对数据库访问的压力,加快网页打开速度. 像http://www.cnhunan.net/的主站就采用了TSYS生成html文件! 所以我最近对生成html比较感兴趣,看了不少文章,也有一点点收获.
1,下面这个例子直接利用FSO把html代码写入到文件中然后生成.html格式的文件
<% 网管论坛,网管软件,企业网管论坛,企业网管软件,企业网管教程,网吧网管论坛,网吧网管软件,网吧网管技术)n7u!i ^ J d2t1w6s1e
filename="test.htm"
if request("body")<>"" then
set fso = Server.CreateObject("Scripting.FileSystemObject")
set htmlwrite = fso.CreateTextFile(server.mappath(""&filename&"")) 我是网管论坛6v-z.U3l#V {/V%S/y
htmlwrite.write "<html><head><title>" & request.form("title") & "</title></head>"
htmlwrite.write "<body>输出Title内容: " & request.form("title") & "<br /> 输出Body内容:" & request.form- 畅通网络 因为有我1I5Y8K3Z.J#e9_1M.s
("body")& "</body></html>" 我是网管论坛8n2^9h:U!t
htmlwrite.close
set fout=nothing 网管论坛,网管软件,企业网管论坛,企业网管软件,企业网管教程,网吧网管论坛,网吧网管软件,网吧网管技术!P1~!i)z/n/[%M(|*_*Z#k
set fso=nothing 9l5O.E!g,o*^'p%b
end if bbs.54master.com5r2y.M-Z7j6n5O
%> bbs.54master.com'j/b$Q3j*G
<form name="form" method="post" action="">
<input name="title" value="Title" size=26>
<br>
<textarea name="body">Body</textarea>
<br>
.com!q/h#G.J-j3@5i
<input type="submit" name="Submit" value="生成html"> bbs.54master.com8f8X*h+I5f7K(U-E H"H6Y
</form>
2,但是按照上面的方法生成html文件非常不方便,第二种方法就是利用模板技术,将模板中特殊代码的值替换为从表单或是bbs.54master.com)Z7K,K6V2K7d*h4|2X
数据库字段中接受过来的值,完成模板功能;将最终替换过的所有模板代码生成HTML文件.这种技术采用得比较多,大部分的
CMS都是使用这类方法. bbs.54master.com S.d/v1K'q9c3J+k2L
template.htm ' //模板文件 <html> bbs.54master.com5{'~'X,B4p,k8q1H
<head>
<title>$title$ by aspid.cn</title> bbs.54master.com#R1~)W'v9E0@"y3G7Z#I/k
</head> 我是网管论坛&U3[%K0A5S i8s0a8Q
<body>
</body> bbs.54master.com3d4K1q+c)E*C#Z
</html> ? 我是网管论坛,企业网管的天堂,网吧网管的乐园。网管软件下载、网管教程下载。中国最大的网管交流论坛!"x+u(U&{(| P4p*X#V
TestTemplate.asp '// 生成Html <% *g.|+H#q,l6L7Y#K;L-o
Dim fso,htmlwrite
Dim strTitle,strContent,strOut 我是网管论坛,企业网管的天堂,网吧网管的乐园。网管软件下载、网管教程下载。中国最大的网管交流论坛!7h!U:d5k)A']
'// 创建文件系统对象 bbs.54master.com7_)u.k8K5K(k(U0l"g4F'i.O.m.J
Set fso=Server.CreateObject("Scripting.FileSystemObject") 0g(H/W+{5`
'// 打开网页模板文件,读取模板内容
Set htmlwrite=fso.OpenTextFile(Server.MapPath("Template.htm"))
strOut=f.ReadAll
htmlwrite.close 我是网管论坛'k0u*r J;`;k1K(P
strTitle="生成的网页标题"
// 用真实内容替换模板中的标记
strOut=Replace(strOut,"$title$",strTitle) 网管论坛,网管软件,企业网管论坛,企业网管软件,企业网管教程,网吧网管论坛,网吧网管软件,网吧网管技术$Y(v9~)s'N0i'm(r4r
strOut=Replace(strOut,"$body$",strContent)
'// 创建要生成的静态页 我是网管论坛!@,J.L%G*A;z,N F
Set htmlwrite=fso.CreateTextFile(Server.MapPath("test.htm"),true)
写入网页内容
htmlwrite.WriteLine strOut 网管论坛,网管软件,企业网管论坛,企业网管软件,企业网管教程,网吧网管论坛,网吧网管软件,网吧网管技术:O0s;s;a/m'V3W
htmlwrite.close
Response.Write "生成静态页成功!" 网管论坛,网管软件,企业网管论坛,企业网管软件,企业网管教程,网吧网管论坛,网吧网管软件,网吧网管技术-D8p)D$m0t'd9}2?
'// 释放文件系统对象
set htmlwrite=Nothing 网管论坛,网管软件,企业网管论坛,企业网管软件,企业网管教程,网吧网管论坛,网吧网管软件,网吧网管技术3u-r1Q2]"G9Z4h9j
set fso=Nothing 我是网管论坛0d6x,V$K9B.u7}2[.]
%>
3,第三种方法就是用XMLHTTP获取动态页生成的HTML内容,再用ADODB.Stream或者Scripting.FileSystemObject保存成网管论坛,网管软件,企业网管论坛,企业网管软件,企业网管教程,网吧网管论坛,网吧网管软件,网吧网管技术!_4p0I"y U)s0y#A!C3E
html文件。这句话是在蓝色理想上看到的,对XMLHTTP我还不熟悉正在找资料了解.找到一段XMLHTTP生成Html的代码参考我是网管论坛*x%F7o3^!B1J8[$Y-M
一下.
<%
常用函数 网管论坛,网管软件,企业网管论坛,企业网管软件,企业网管教程,网吧网管论坛,网吧网管软件,网吧网管技术(A&K+l9N$t*d)t$G
'1、输入url目标网页地址,返回值getHTTPPage是目标网页的html代码
function getHTTPPage(url) 网管论坛,网管软件,企业网管论坛,企业网管软件,企业网管教程,网吧网管论坛,网吧网管软件,网吧网管技术&b#c&U"Y4D6Z&?"T3R
dim Http 我是网管论坛,企业网管的天堂,网吧网管的乐园。网管软件下载、网管教程下载。中国最大的网管交流论坛!$I%s'm#`,g6h:t/{;V%a
set Http=server.createobject("MSXML2.XMLHTTP") 网管论坛,网管软件,企业网管论坛,企业网管软件,企业网管教程,网吧网管论坛,网吧网管软件,网吧网管技术3x9L'm!b"f
Http.open "GET",url,false
Http.send() 网管论坛,网管软件,企业网管论坛,企业网管软件,企业网管教程,网吧网管论坛,网吧网管软件,网吧网管技术-`8w*N5g3e$u.i*w#G+o2K
if Http.readystate<>4 then
exit function
end if
getHTTPPage=bytesToBSTR(Http.responseBody,"GB2312")
set http=nothing 网管论坛,网管软件,企业网管论坛,企业网管软件,企业网管教程,网吧网管论坛,网吧网管软件,网吧网管技术+a8b%a'l%}+e0J:n3?,u6E
if err.number<>0 then err.Clear 我是网管论坛,企业网管的天堂,网吧网管的乐园。网管软件下载、网管教程下载。中国最大的网管交流论坛!4U4^$^,v+l$P(g4d(V!A8b
end function bbs.54master.com3~+G1|5\%z/r*C:D X
'2、转换乱玛,直接用xmlhttp调用有中文字符的网页得到的将是乱玛,可以通过adodb.stream组件进行转换 我是网管论坛:L%u7y-[/X
Function BytesToBstr(body,Cset) 网管论坛,网管软件,企业网管论坛,企业网管软件,企业网管教程,网吧网管论坛,网吧网管软件,网吧网管技术,f/C.O2^'J-i!V&t6|
dim objstream bbs.54master.com-O"K+s-z!h7c.C
set objstream = Server.CreateObject("adodb.stream")
objstream.Type = 1
objstream.Mode =3
objstream.Open bbs.54master.com9O1s)w7| l"I9X9Q3[
objstream.Write body
objstream.Position = 0 `!K9F*k+E
objstream.Type = 2 - 畅通网络 因为有我6q(Z!n E:f/V$]7_ a!I
objstream.Charset = Cset
BytesToBstr = objstream.ReadText 我是网管论坛,企业网管的天堂,网吧网管的乐园。网管软件下载、网管教程下载。中国最大的网管交流论坛!&b!O3q.R"p!Y6w7L(o2u
objstream.Close 我是网管论坛,企业网管的天堂,网吧网管的乐园。网管软件下载、网管教程下载。中国最大的网管交流论坛!)d:l8[6^:l/l6A1j*I
set objstream = nothing 网管论坛,网管软件,企业网管论坛,企业网管软件,企业网管教程,网吧网管论坛,网吧网管软件,网吧网管技术!{0r-{$f*v
End Function bbs.54master.com+m4S%m4B,c6l;h+P(C0G
txtURL=server.MapPath("../index.asp")
sText = getHTTPPage(txtURL) 我是网管论坛8Z-h2C*K*{2I5J%C
Set FileObject=Server.CreateObject("Scripting.FileSystemObject")
filename="../index.htm"
Set openFile=FileObject.OpenTextfile(server.mapPath(filename),2,true) 'true为不存在自行建立
openFile.writeline(sText) bbs.54master.com*c(`0F:?*B3P;d&F/J
Set OpenFile=nothing 网管论坛,网管软件,企业网管论坛,企业网管软件,企业网管教程,网吧网管论坛,网吧网管软件,网吧网管技术;p"J+p6z:y;k6d
%>
<script> 网管论坛,网管软件,企业网管论坛,企业网管软件,企业网管教程,网吧网管论坛,网吧网管软件,网吧网管技术+y(@4z/g9W#O5P;X%E%^4v
alert("静态网页生成完毕");
history.ba我是网管
1,下面这个例子直接利用FSO把html代码写入到文件中然后生成.html格式的文件
<% 网管论坛,网管软件,企业网管论坛,企业网管软件,企业网管教程,网吧网管论坛,网吧网管软件,网吧网管技术)n7u!i ^ J d2t1w6s1e
filename="test.htm"
if request("body")<>"" then
set fso = Server.CreateObject("Scripting.FileSystemObject")
set htmlwrite = fso.CreateTextFile(server.mappath(""&filename&"")) 我是网管论坛6v-z.U3l#V {/V%S/y
htmlwrite.write "<html><head><title>" & request.form("title") & "</title></head>"
htmlwrite.write "<body>输出Title内容: " & request.form("title") & "<br /> 输出Body内容:" & request.form- 畅通网络 因为有我1I5Y8K3Z.J#e9_1M.s
("body")& "</body></html>" 我是网管论坛8n2^9h:U!t
htmlwrite.close
set fout=nothing 网管论坛,网管软件,企业网管论坛,企业网管软件,企业网管教程,网吧网管论坛,网吧网管软件,网吧网管技术!P1~!i)z/n/[%M(|*_*Z#k
set fso=nothing 9l5O.E!g,o*^'p%b
end if bbs.54master.com5r2y.M-Z7j6n5O
%> bbs.54master.com'j/b$Q3j*G
<form name="form" method="post" action="">
<input name="title" value="Title" size=26>
<br>
<textarea name="body">Body</textarea>
<br>
.com!q/h#G.J-j3@5i
<input type="submit" name="Submit" value="生成html"> bbs.54master.com8f8X*h+I5f7K(U-E H"H6Y
</form>
2,但是按照上面的方法生成html文件非常不方便,第二种方法就是利用模板技术,将模板中特殊代码的值替换为从表单或是bbs.54master.com)Z7K,K6V2K7d*h4|2X
数据库字段中接受过来的值,完成模板功能;将最终替换过的所有模板代码生成HTML文件.这种技术采用得比较多,大部分的
CMS都是使用这类方法. bbs.54master.com S.d/v1K'q9c3J+k2L
template.htm ' //模板文件 <html> bbs.54master.com5{'~'X,B4p,k8q1H
<head>
<title>$title$ by aspid.cn</title> bbs.54master.com#R1~)W'v9E0@"y3G7Z#I/k
</head> 我是网管论坛&U3[%K0A5S i8s0a8Q
<body>
</body> bbs.54master.com3d4K1q+c)E*C#Z
</html> ? 我是网管论坛,企业网管的天堂,网吧网管的乐园。网管软件下载、网管教程下载。中国最大的网管交流论坛!"x+u(U&{(| P4p*X#V
TestTemplate.asp '// 生成Html <% *g.|+H#q,l6L7Y#K;L-o
Dim fso,htmlwrite
Dim strTitle,strContent,strOut 我是网管论坛,企业网管的天堂,网吧网管的乐园。网管软件下载、网管教程下载。中国最大的网管交流论坛!7h!U:d5k)A']
'// 创建文件系统对象 bbs.54master.com7_)u.k8K5K(k(U0l"g4F'i.O.m.J
Set fso=Server.CreateObject("Scripting.FileSystemObject") 0g(H/W+{5`
'// 打开网页模板文件,读取模板内容
Set htmlwrite=fso.OpenTextFile(Server.MapPath("Template.htm"))
strOut=f.ReadAll
htmlwrite.close 我是网管论坛'k0u*r J;`;k1K(P
strTitle="生成的网页标题"
// 用真实内容替换模板中的标记
strOut=Replace(strOut,"$title$",strTitle) 网管论坛,网管软件,企业网管论坛,企业网管软件,企业网管教程,网吧网管论坛,网吧网管软件,网吧网管技术$Y(v9~)s'N0i'm(r4r
strOut=Replace(strOut,"$body$",strContent)
'// 创建要生成的静态页 我是网管论坛!@,J.L%G*A;z,N F
Set htmlwrite=fso.CreateTextFile(Server.MapPath("test.htm"),true)
写入网页内容
htmlwrite.WriteLine strOut 网管论坛,网管软件,企业网管论坛,企业网管软件,企业网管教程,网吧网管论坛,网吧网管软件,网吧网管技术:O0s;s;a/m'V3W
htmlwrite.close
Response.Write "生成静态页成功!" 网管论坛,网管软件,企业网管论坛,企业网管软件,企业网管教程,网吧网管论坛,网吧网管软件,网吧网管技术-D8p)D$m0t'd9}2?
'// 释放文件系统对象
set htmlwrite=Nothing 网管论坛,网管软件,企业网管论坛,企业网管软件,企业网管教程,网吧网管论坛,网吧网管软件,网吧网管技术3u-r1Q2]"G9Z4h9j
set fso=Nothing 我是网管论坛0d6x,V$K9B.u7}2[.]
%>
3,第三种方法就是用XMLHTTP获取动态页生成的HTML内容,再用ADODB.Stream或者Scripting.FileSystemObject保存成网管论坛,网管软件,企业网管论坛,企业网管软件,企业网管教程,网吧网管论坛,网吧网管软件,网吧网管技术!_4p0I"y U)s0y#A!C3E
html文件。这句话是在蓝色理想上看到的,对XMLHTTP我还不熟悉正在找资料了解.找到一段XMLHTTP生成Html的代码参考我是网管论坛*x%F7o3^!B1J8[$Y-M
一下.
<%
常用函数 网管论坛,网管软件,企业网管论坛,企业网管软件,企业网管教程,网吧网管论坛,网吧网管软件,网吧网管技术(A&K+l9N$t*d)t$G
'1、输入url目标网页地址,返回值getHTTPPage是目标网页的html代码
function getHTTPPage(url) 网管论坛,网管软件,企业网管论坛,企业网管软件,企业网管教程,网吧网管论坛,网吧网管软件,网吧网管技术&b#c&U"Y4D6Z&?"T3R
dim Http 我是网管论坛,企业网管的天堂,网吧网管的乐园。网管软件下载、网管教程下载。中国最大的网管交流论坛!$I%s'm#`,g6h:t/{;V%a
set Http=server.createobject("MSXML2.XMLHTTP") 网管论坛,网管软件,企业网管论坛,企业网管软件,企业网管教程,网吧网管论坛,网吧网管软件,网吧网管技术3x9L'm!b"f
Http.open "GET",url,false
Http.send() 网管论坛,网管软件,企业网管论坛,企业网管软件,企业网管教程,网吧网管论坛,网吧网管软件,网吧网管技术-`8w*N5g3e$u.i*w#G+o2K
if Http.readystate<>4 then
exit function
end if
getHTTPPage=bytesToBSTR(Http.responseBody,"GB2312")
set http=nothing 网管论坛,网管软件,企业网管论坛,企业网管软件,企业网管教程,网吧网管论坛,网吧网管软件,网吧网管技术+a8b%a'l%}+e0J:n3?,u6E
if err.number<>0 then err.Clear 我是网管论坛,企业网管的天堂,网吧网管的乐园。网管软件下载、网管教程下载。中国最大的网管交流论坛!4U4^$^,v+l$P(g4d(V!A8b
end function bbs.54master.com3~+G1|5\%z/r*C:D X
'2、转换乱玛,直接用xmlhttp调用有中文字符的网页得到的将是乱玛,可以通过adodb.stream组件进行转换 我是网管论坛:L%u7y-[/X
Function BytesToBstr(body,Cset) 网管论坛,网管软件,企业网管论坛,企业网管软件,企业网管教程,网吧网管论坛,网吧网管软件,网吧网管技术,f/C.O2^'J-i!V&t6|
dim objstream bbs.54master.com-O"K+s-z!h7c.C
set objstream = Server.CreateObject("adodb.stream")
objstream.Type = 1
objstream.Mode =3
objstream.Open bbs.54master.com9O1s)w7| l"I9X9Q3[
objstream.Write body
objstream.Position = 0 `!K9F*k+E
objstream.Type = 2 - 畅通网络 因为有我6q(Z!n E:f/V$]7_ a!I
objstream.Charset = Cset
BytesToBstr = objstream.ReadText 我是网管论坛,企业网管的天堂,网吧网管的乐园。网管软件下载、网管教程下载。中国最大的网管交流论坛!&b!O3q.R"p!Y6w7L(o2u
objstream.Close 我是网管论坛,企业网管的天堂,网吧网管的乐园。网管软件下载、网管教程下载。中国最大的网管交流论坛!)d:l8[6^:l/l6A1j*I
set objstream = nothing 网管论坛,网管软件,企业网管论坛,企业网管软件,企业网管教程,网吧网管论坛,网吧网管软件,网吧网管技术!{0r-{$f*v
End Function bbs.54master.com+m4S%m4B,c6l;h+P(C0G
txtURL=server.MapPath("../index.asp")
sText = getHTTPPage(txtURL) 我是网管论坛8Z-h2C*K*{2I5J%C
Set FileObject=Server.CreateObject("Scripting.FileSystemObject")
filename="../index.htm"
Set openFile=FileObject.OpenTextfile(server.mapPath(filename),2,true) 'true为不存在自行建立
openFile.writeline(sText) bbs.54master.com*c(`0F:?*B3P;d&F/J
Set OpenFile=nothing 网管论坛,网管软件,企业网管论坛,企业网管软件,企业网管教程,网吧网管论坛,网吧网管软件,网吧网管技术;p"J+p6z:y;k6d
%>
<script> 网管论坛,网管软件,企业网管论坛,企业网管软件,企业网管教程,网吧网管论坛,网吧网管软件,网吧网管技术+y(@4z/g9W#O5P;X%E%^4v
alert("静态网页生成完毕");
history.ba我是网管
凡事往简单处想,往认真处行
本文作者:小魔鬼coder
本文链接:https://www.cnblogs.com/coderblog/articles/1238210.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步