求一个ASP生成HTML的源码,谢谢了

哎哟,这个用VB写记事本,其实跟做个简单的网页差不多,就是保存个纯文本文件,用FSO(File System Object,文件系统对象)搞定的。
我举个例子,你用VB写个记事本,就是这种操作。

你看,这里是这样写的: vb Set fso = CreateObject("Scripting.FileSystemObject") NewFile = Server.MapPath("//文件名.") Set t = fso.CreateTextFile(NewFile, True) t.Close
这个代码段的意思是,我创建了一个对象fso,它可以帮助我操作文件系统。
然后我告诉它,我要在服务器上某个位置创建一个新的文件,文件名是“文件名.”。
这里要注意,创建文件的位置你可以根据自己需要调整。

然后,我打开这个文件,写入内容: vb File = Server.MapPath("//文件名.") Set txt = fso.OpenTextFile(File, 8 , True) txt.WriteLine("") txt.WriteLine("<head>") txt.WriteLine("<title>这是一个静态页面</title>") txt.WriteLine("</head>") txt.WriteLine("<body>") txt.WriteLine("这里就是静态页面的内容了") txt.WriteLine("</body>") txt.WriteLine("</>") txt.Close
这里我用txt.WriteLine来写入内容,每一行内容之间我用WriteLine,这样写出来的HTML代码就会自动换行了。
如果你需要换行符,你可以在字符串里加入chr(1 3 )和chr(1 0),这样生成的HTML页面就会看起来整齐多了。

说实话,我当时也没想明白这个原理,后来慢慢琢磨就明白了。
只要你有点ASP的基础,应该能看懂这个。

哪位高手给写段ASP生成静态页的源码

哎,当时我也懵,怎么搞网页生成静态的。

2 02 2 年,我在上海这边搞这个。
公司那个网站,www.example.com,老慢了,对数据库压力也大。
想搞静态的,被收录快。

第一种方法,用FSO,直接写文件。
试了下,好像还行。
写了个小例子,把表单内容直接写入test.htm。
简单,但感觉不太方便。
代码是这么写的:
<%filename="test.htm"ifrequest("body")""thensetfso=Server.CreateObject("Scripting.FileSystemObject")setwrite=fso.CreateTextFile(server.mappath(filename))write.write""write.write"<body>输出Title内容:"&request.form("title")&"
输出Body内容:"&request.form("body")&"</body></>"write.close setfout=nothingsetfso=nothingendif%><formname="form"method="post"action=""><inputname="title"value="Title"size=2 6 ><br><textarea name="body">Body</textarea><br><br><inputtype="submit"name="Submit"value="生成"></form>
但后来发现,这样生成不方便。
第二种方法,用模板技术。
这个好多了。
大部分CMS都用这个。
比如aspid.cn,他们的主站就用TSYS生成文件。

我看了不少文章,像template.htm这种模板,然后在asp里替换值。
代码大概是这样:
<%Dimfso,writeDimstrTitle,strContent,strOutSetfso=Server.CreateObject("Scripting.FileSystemObject")Setwrite=fso.OpenTextFile(Server.MapPath("Template.htm"))strOut=f.ReadAllwrite.closestrTitle="生成的网页标题"strContent="生成的网页内容"strOut=Replace(strOut,"$title$",&strTitle)strOut=Replace(strOut,"$body$",&strContent)Setwrite=fso.CreateTextFile(Server.MapPath("test.htm"),true)write.WriteLinestrOutwrite.closeResponse.Write"生成静态页成功!"setwrite=Nothingsetfso=Nothing%>
这个感觉好多了。
减轻了数据库压力,速度也快了。

第三种方法,用XMLHTTP。
这个我还不熟,正在找资料。
在蓝色理想上看到一句话,说用XMLHTTP获取动态页生成的HTML内容,再用ADODB.Stream或者Scripting.FileSystemObject保存成文件。
找到一段代码参考一下:
<%1 、输入url目标网页地址,返回值getHTTPPage是目标网页的代码functiongetHTTPPage(url)dimHttpsetHttp=server.createobject("MSXML2 .XMLHTTP")Http.open"GET",url,falseHttp.send()ifHttp.readystate4 thenexit functionendifgetHTTPPage=bytesToBSTR(Http.responseBody,"GB2 3 1 2 ")sethttp=nothingiferr.number0thenerr.Clearend function2 、转换乱码,直接用xmlhttp调用有中文字符的网页得到的将是乱码,可以通过adodb.stream组件进行转换FunctionBytesToBstr(body,Cset)dimobjstreamsetobjstream=Server.CreateObject("adodb.stream")objstream.Type=1 objstream.Mode=3 objstream.Openobjstream.Writebodyobjstream.Position=0objstream.Type=2 objstream.Charset=CsetBytesToBstr=objstream.ReadTextobjstream.Closesetobjstream=nothingEnd FunctiontxtURL=server.MapPath("../index.asp")sText=getHTTPPage(txtURL)SetFileObject=Server.CreateObject("Scripting.FileSystemObject")filename="../index.htm"SetopenFile=FileObject.OpenTextfile(server.mapPath(filename),2 ,true)openFile.writeline(sText)SetOpenFile=nothing%><script>alert("静态网页生成完毕");history.back();</script>
这个代码,感觉有点复杂。
可能我偏激,觉得这个方法不如模板技术直观。

总之,静态化网页,好处挺多的。
被收录快,速度也快。
像2 02 2 年,很多网站都在搞这个。
上海这边,不少公司都用了静态化。
量大了,效果明显。
钱方面,可能初期投入多点,但长期看,维护成本低,也省了不少钱。

XMLHTTP这个,以后再研究吧。
现在先把模板技术搞熟了。

为什么ASP包含在HTML文件中?难道ASP是HTML的一种?

可以。
ASP 写文件,无 HTML 标签。
Response.Write 输出。

ASP 服务器端。
HTML 客户端。

ASP JavaScript/VB/VBScript。
解释执行,生成 HTML。

混写,常见。
省事,但不好。
客货混装。

ASP 生成 HTML。
两者分离。

直接说:ASP 生成 HTML 发送。

用HTML制作网页――表单与ASP,求高手帮忙

哎,这个第一个HTML页面,一看就是用来收集用户信息的,对吧?那个<form>标签,还有那些输入框、单选框、下拉菜单,还有复选框,都是用来收集不同类型的数据的。
那个<select>标签,还有里面的