zoukankan      html  css  js  c++  java
  • ASP自动生成HTML文件方法

    首先这项技术的优点是:(1)减轻数据库的压力;(2)把数据库和页面隔离开来
    然后给大家讲一下实现原理..

    ASP生成HTML其实是使用服务器的FSO内置对象..
    其定义方法为
    set fs=createobject("scripting.filesystemobject") \\'设置FSO对象

    在建立FSO对象后就可以对服务器进行文件及文件夹管理操作...
    所以在服务器新建一个网页文件也是很轻松的事...

    sub SaveText(FileName,Data) \\'这是一个用于写文本文件的过程
    dim fs,ts,path \\'定义变量
    set fs=createobject("scripting.filesystemobject") \\'设置FSO对象
    if instr(filename,":\\\\")<>0 then \\'判断是不是绝对路径
    path=filename
    else
    path=server.MapPath(FileName)
    end if
    set ts=fs.createtextfile(path,true) \\'创建文件对象
    ts.writeline(data) \\'写数据
    ts.close \\'关闭对象
    set ts=nothing
    set fs=nothing
    end sub

    这是一个建立所在类型文件的子程序..
    对重要语句都给了一定的注释...
    功能就是向服务器的指定路径创建一个文件并将数据写进去..
    其调用方式为:
    savetext "D:\\\\chris.html","chris"
    大家可以在自己的电脑上试一下..
    第一个参数为Chris.html
    文件内容为chris

    了解了创建文件的原理之后就可以对网站进行批量网页生成..

    但是在生成以前我们必须得为生成的页面制作一个模板...

    下面我举个例子..

    Mode.asp
    ------------------
    <body onLoad="window.focus();">
    <table width="700" border="0" align="center" cellpadding="0" cellspacing="0" class="table">
    <tr>
    <td><br>
    <table width="600" border="0" align="center" cellpadding="0" cellspacing="0">
    <tr>
    <td style="LEFT: 0px; WIDTH: 600 xp; WORD-WRAP: break-word"><p><font size="2"><%=rs("bigclass")%> -> <%=rs("smallclass")%> -> <font color="#FF9B9B"><%=rs("title")%></font></font></p>
    <p><font size="2"><%response.Write(ubbcode(rs("content")))%></font></p>
    <p> </p>
    <p align="right"><font size="2">摘自:<%=rs("path")%>  </font></p></td>
    </tr>
    </table></td>
    </tr>
    <tr>
    <td><div align="center"><font size="2"><br>
    发布时间:<font color="#FF9B9B"><%=rs("time")%></font>  浏览次数:<font color="#FF9B9B"><%=rs("browse")%></font></font></div></td>
    </tr>
    <tr>
    <td> </td>
    </tr>
    </table>
    </body>
    这是一个模板文件....

    下面要做的操作就是制作一个生成页面...

    这个生成页面要做的工作是将Mode.asp的文件内容读出.然后将其需要动态替换的地方替换成需要的内容..

    set fso=server.CreateObject("scripting.filesystemobject") \\'创建一个FSO对象
    set myfile=fso.getfile(filepath) \\'设置一个文件对象..filepath就是这个模板文件的名称
    set ts=myfile.openastextstream \\'设置一个文本对象..并打开这个对象...
    if not ts.atendofstream then content=changecontent(ts.readline)
    do while not ts.atendofstream
    content=content+vbcrlf
    content=content+changecontent(ts.readline)
    loop

    将模板文件的内容赋值到content变量里...

    再对其模板内容处理后生成新的网页文件...

    例如
    Replace(content,"<%=rs("title")%"&">",title)
    将模板文件的<%=Rs("title")%>替换为文章标题...

    其他的Content,Time,Browse以此类推...

    Content进行处理后就是一个完整的网页文件..
    将其输出就完成了网页的生成..
    sub SaveText(FileName,Data) \\'这是一个用于写文本文件的过程
    dim fs,ts,path \\'定义变量
    set fs=createobject("scripting.filesystemobject") \\'设置FSO对象
    if instr(filename,":\\\\")<>0 then \\'判断是不是绝对路径
    path=filename
    else
    path=server.MapPath(FileName)
    end if
    set ts=fs.createtextfile(path,true) \\'创建文件对象
    ts.writeline(data) \\'写数据
    ts.close \\'关闭对象
    set ts=nothing
    set fs=nothing
    end sub

    savetext CreateFileName,Content \\'调用写文件子程序

    使用模板自动生成原理基本上就是这样...
    主要问题在于大家使用过程中的一些细节问题的注意...
    一会儿我会让大家看一个比较成熟的FSO的展示程序...

    set myfile=fso.getfile(uta(filepath))
    ----------------------
    在FSO对象的基础上建立一个文件对象...

    myfile=你指定的那个文件..

    if not ts.atendofstream then content=changecontent(ts.readline) \\'判断文件是否为空.如果不为空才进行赋值操作
    do while not ts.atendofstream \\'AtEndOfStream判断是不是文件的末尾
    content=content+vbcrlf
    content=content+changecontent(ts.readline)
    loop

    FSO对象的属性和方法比较多...如果大家感兴趣可以参考一下VBS参考手册..
    我在这里只是起一个引导作用...给大家讲解一下成生网页文件..

    content=content+vbcrlf
    content=content+changecontent(ts.readline)
    是做什么的
    ------------------------------------
    把文件按行读出来...

    AtEndOfStream判断是不是文件的末尾 刚才Chris已经讲了
    do while not ts.atendofstream \\'AtEndOfStream判断是不是文件的末尾 content=content+vbcrlf
    content=content+changecontent(ts.readline)
    loop
    的意思就是说,把文件中的一行一行读出来

    只是一个函数..
    function uta(val)
    uta=replace(val,"*","&")
    end function

    filepath是在哪里取的?

    filepath就是你那个文件所在地呀

    2005-07-09 15:36:19 偸米饭(44018790)
    Chris
    changecontent这个函数有什么用?

    changecontent是一个函数,可能是替换里面的一些字符
    那些都是一些Replace的替换操作...
    你们根据自己需要进行处理...
    不一定必须...

    整体原理就是利用FSO的创建文件方法在服务器创建一个网页文件..
    然后把代码写到创建的文件里...就是这样..
  • 相关阅读:
    kettle 连接 SQL Server 异常
    Quartz.NET
    过滤器和拦截器
    Spring Web MVC(一)
    Spring(三)之自动装配、表达式
    spring(四)之基于注解(Annotation-based)的配置.md
    Spring(一)之IOC、bean、注入
    Spring(二)之配置.md
    cookie和session详解
    jsp基础与提高(EL、JSTL)
  • 原文地址:https://www.cnblogs.com/pricks/p/1656200.html
Copyright © 2011-2022 走看看