asp动态网页生成静态页面

2025-06-21 21:29:30
推荐回答(1个)
回答1:

1)asp生成html的方式 要生成文件肯空要用到FSO(FileSystemObject)组件,通过asp生成静态网页主要有两种方式: a、生成的内容由多部分连接而成; b、生成的内容基于模板生成。 2)方式1:生成的内容由多部分连接而成 步骤: a、设计要输出网页的布局 b、设计生成HTML的asp文件 例子: 输出网页的布局: 标题

标题
作者: 录入时间: 录入:
内容
来源:
把源代码中的所有的 " 替换成 "",作用是在ASP中输出双引号。 设计asp文件: <% Option Explicit %> ASP生成HTML
HTML文件名称:
文章标题:
作者:
录入:
输入时间:
文章内容:
来源:
<% if Trim(Request.QueryString("action"))="create" then dim title , author , editor , EditTime , content , from , html title=Trim(Request.Form("title")) editor=Trim(Request.Form("editor")) EditTime=Trim(Request.Form("EditTime")) content=Trim(Request.Form("content")) from=Trim(Request.Form("from")) html=""_ '粘贴上面的修改后的 输出网页布局的源代码 &""_ ‘并用 _ 与 & 把各行连接起来 或删除多余空格使源代码写在一行 &""&title&""_ &""_ &""_ &" "_ &""_ &""_ &""_ &""_ &"
"&title&"
"_ &"
作者:"&author&" 录入时间:"&EditTime&" 录入:"&editor&"
"_ &"
"&content&"
"_ &"
来源:"&from&"
"_ &" "_ &"" dim HtmlFileName ,HtmlFile , fs , FileStream HtmlFileName=Trim(Request.Form("HtmlFileName")) if instr(HtmlFileName,".html")=false then HtmlFileName="NoName.html" end if HtmlFile=Server.MapPath(HtmlFileName) set fs=CreateObject("Scripting.FileSystemObject") set FileStream=fs.CreateTextFile(HtmlFile) FileStream.WriteLine Html FileStream.close set FileStream=nothing response.Write("") end if %> 把上面的asp文件保存放到服务器上即可运行 3)方式2:生成的内容基于模板生成 思想: 给模板asp传递参数,使用“MSXML2.XMLHTTP”读取基于参数传递的asp模板的网页源代码, 再使用FSO组件生成静态网页。 步骤: a、设计有参数传递的asp模板 b、设计asp控制页 设计asp模板:(保存成template.asp) <% Option Explicit %> <% dim HtmlFileName ,title , author , editor ,EditTime ,content ,from HtmlFileName=Trim(Request.QueryString("HtmlFileName")) title=Trim(Request.QueryString("title")) author=Trim(Request.QueryString("author")) editor=Trim(Request.QueryString("editor")) EditTime=Trim(Request.QueryString("EditTime")) content=Trim(Request.QueryString("content")) from=Trim(Request.QueryString("from")) %> <%= title %>
<%= title %>
作者:<%= author %> 录入时间:<%= EditTime %> 录入:<%= editor %>
<%= content %>
来源:<%= from %>
设计asp文件:(保存成html.asp) <% Option Explicit %> ASP生成HTML
HTML文件名称:
文章标题:
作者:
录入:
输入时间:
文章内容:
来源:
<% function getHTTPPage(url) dim Http set Http=server.createobject("MSXML2.XMLHTTP") Http.open "GET",url,false Http.send() if Http.readystate<>4 then exit function end if getHTTPPage=bytesToBSTR(Http.responseBody,"GB2312") set http=nothing if err.number<>0 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 %> <% if Trim(Request.QueryString("action"))="create" then dim title , author , editor , EditTime , content , from , html title=Trim(Request.Form("title")) editor=Trim(Request.Form("editor")) EditTime=Trim(Request.Form("EditTime")) content=Trim(Request.Form("content")) from=Trim(Request.Form("from")) '读取传递参数后的模版源代码,地址根据具体情况而定 html=getHTTPPage(" http://127.0.0.1/template.asp"_ &"?title="&title&"&editor="&editor&"&EditTime="_ &EditTime&"&content="&content&"&from="&content&"") dim HtmlFileName ,HtmlFile , fs , FileStream HtmlFileName=Trim(Request.Form("HtmlFileName")) if instr(HtmlFileName,".html")=false then HtmlFileName="NoName.html" end if HtmlFile=Server.MapPath(HtmlFileName) set fs=CreateObject("Scripting.FileSystemObject") set FileStream=fs.CreateTextFile(HtmlFile) FileStream.WriteLine Html FileStream.close set FileStream=nothing response.Write("") end if %> 把template.asp与html.asp 放在同一目录通过服务器运行后即可。 4)结论 通过比较可以看出,通过方式一生成的html文件源代码比较乱,而通过模板生成的html文件源代码跟原先模板的源代码一致。