知识大全 实例详细讲解ASP生成静态页面方法
Posted 文件
篇首语:发明是百分之一的聪明加百分之九十九的勤奋。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 实例详细讲解ASP生成静态页面方法相关的知识,希望对你有一定的参考价值。
实例详细讲解ASP生成静态页面方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
WITH TEMPLET意思是 生成的页面架构将采用某个已设定的模板 在此之前我的一篇教程中介绍过 希望各位在看本教程之前对ASP采用模板应熟悉下 ASP转变为HTML 不要我再说ASP转变成HTML的好处了吧 其中最值得知道的就是 静态HTML页和动态页对服务器的要求承受能力小得多 同样 静态HTML搜索几率远比动态页面的多得多 那么 我现在需要处理的技术问题就是 如何实现模板技术? 如何实现 HTML技术? 如何让模板技术与 HTML技术结合? 一 先进行技术原理分析 模板技术参看 如何使得ASP页面转变为HTML?一般都会想到FSO组件 因为该组件能新建任何文件格式 那么其整个运行过程是怎么样的呢? a 提供信息输入页面进行信息收集 b 接受信息值先保存数据库 再FSO生成文件 c 技术性完成任务 显示刚被创建的HTML文件的路径地址 该技术的实现过程中有如下几个难点 i FSO生成的文件是直接放在一个大文件夹下 还是单独放在某个每日更新的子文件夹中?可能表述不准确 这样理解吧 相信通过FSO生成的文件随着时间的推移 文件会越来越多 管理也会越来越乱……通常你可能看到一些地址诸如 /a/ /l 可以分析得出应该是建立了当前日期的文件夹 这样 一天就是一个文件夹的页面内容 查看管理也就显得比较合理 ii 我在试图通过以上方法建立文件夹的时候 又发现了第二个问题 第一次通过FSO建立以当前日期命名的文件夹 没有问题 当我有新的文件需要生成时 因为是同一个程序 所以 其又将会执行建立同样的文件夹 此时 FSO组件会发现该路径已存在……卡壳 _ ! 继续处理 在首行添加代码 On Error Resume Next 达到自欺欺人 掩耳盗铃的效果 当然规矩的用法是判断文件夹的有无 <%Set fso = Server CreateObject( Scripting FileSystemObject )if (fso FolderExists(Server MapPath(folder))) then 判断如果存在就不做处理else 判断如果不存在则建立新文件夹fso CreateFolder(Server MapPath(folder))end if%> iii 文件夹是建立了 文件该如何建立呢?主要也就是文件名的生成 当然这个就需要自己来写个函数 功能就是如何生成文件名 <%function makefilename(fname)fname = fname 前fname为变量 后fname为函数参数引用fname = replace(fname )fname = replace(fname ) fname = replace(fname : )fname = replace(fname PM )fname = replace(fname AM )fname = replace(fname 上午 )fname = replace(fname 下午 )makefilename = fname & l end function %> 引用函数则 <%fname = makefilename(now())%> 其实嘛 就是以年月日时分秒命名的文件 iv 最后 生成的文件该如何查看到?当然需要把生成文件的路径保存的数据库中 并且添加到相对应的记录集中了 当然 这在下面的数据库设计时会提及到 模板技术和 HTML技术的结合 将模板中特殊代码的值替换为从表单接受过来的值 完成模板功能 将最终替换过的所有模板代码生成HTML文件 需要注意的是 替换应能将输入数据的格式或者支持UBB的代码彻底改变 二 再进行数据库设计 目前数据库的设计需要两个表 一个是存放模板数据的 一个是存放信息内容的 建立新数据库asp mdb 设计新数据库表c_moban 字段m_id(自动编号 主关键字) 字段m_(备注类型) 并将下列完整的代码拷贝至m_字段 <><head><meta equiv= Content Type content= text/; charset=hz ><title>Cnbruce Com | ASP HTML TEST</title></head><body leftmargin= topmargin= ><table width= % height= % border= cellpadding= cellspacing= ><tr align= right bgcolor= #CCCCCC > <td height= colspan= >$cntopLogContentlt;/td></tr><tr valign= top > <td width= % bgcolor= #e e e >$cnleftLogContentlt;/td><td width= % bgcolor= #f f f >$cnrightLogContentlt;/td></tr></table></body></> 设计新数据库表c_news 字段c_id 自动编号 主关键字 字段c_title 文本类型 保存文章标题 字段c_content 备注类型 保存文章内容 字段c_filepath 文本类型 保持生成文件的路径地址 字段c_time 日期/时间类型 默认值 Now() 三 页面需求设计 首先建立一个存放HTML页的文件夹 在文件同一目录下 建立文件夹newsfile 夹子内部主要存放生成的HTML页面 当然内部还会采用程序方式建立以日期命名的子文件夹 以方便浏览以及管理 功能函数页面lib asp <% 生成文件名的函数function makefilename(fname)fname = fnamefname = replace(fname )fname = replace(fname ) fname = replace(fname : )fname = replace(fname PM )fname = replace(fname AM )fname = replace(fname 上午 )fname = replace(fname 下午 )makefilename=fname & s end function 保持数据格式不变的函数function HTMLEncode(fString)fString = replace(fString > > )fString = replace(fString < < )fString = Replace(fString CHR( ) )fString = Replace(fString CHR( ) )fString = Replace(fString CHR( ) & CHR( ) <br> )fString = Replace(fString CHR( ) <br> )HTMLEncode = fStringend function%> 数据库连接页面conn asp 完成数据库的字符串连接方法 <%set conn = Server CreateObject( ADODB Connection )connstr = Provider=Microsoft Jet OLEDB ;Data Source= &Server MapPath( asp mdb )conn Open connstr%> 信息输入页面l 其实很简单 就是表单嘛 注意action是跳转到addit asp <form action= addit asp method= post >Title:<input type= text name= c_title ><br>Content:<br><textarea name= c_content rows= cols= ></textarea><br><input type= submit value= Add ><input type= reset value= Reset ></form> 处理数据功能显示页面addit asp 首先是处理接受过来的数据 并将值写入数据库 接着将模板代码进行引用 并将其中特殊代码转换为接受值 最终通过FSO生成HTML页面 其中需要注意的还有 生成文件的路径地址保存至数据库表 <% 容错处理On Error Resume Next%><! #include file= conn asp ><! #include file= lib asp ><% 接受传递值c_title=request form( c_title )c_content=request form( c_content )%><% 生成HTML文件名 建立文件夹 指定文件路径fname = makefilename(now()) makefilename为自定义函数 folder = newsfile/ &date()& / filepath = folder&fname%><% 将接受值及路径保持至数据库表sql = Select * from c_news Set rs = Server CreateObject ( ADODB Recordset )rs Open sql conn rs addnewrs( c_title )=c_titlers( c_content )=c_contentrs( c_filepath )=filepathrs updaters close Set rs = Nothing%><% 打开模板代码 并将其中特殊代码转变为接受值sql = select m_id m_ from c_moban where m_id= set rs =Server CreateObject( adodb recordset )rs open sql conn mb_code=rs ( m_ )rs closeset rs =nothingconn closeset conn=nothingc_title=encode(c_title)c_content=encode(c_content)mb_code=replace(mb_code $cntopLogContentquot; now())mb_code=replace(mb_code $cnleftLogContentquot; c_title)mb_code=replace(mb_code $cnrightLogContentquot; c_content)%><% 生成HTML页面Set fso = Server CreateObject( Scripting FileSystemObject )fso CreateFolder(Server MapPath(folder))Set fout = fso CreateTextFile(Server MapPath(filepath))fout WriteLine mb_codefout close%>文章添加成功 <a >浏览</a> 显示数据库表记录 并做指向HTML页的链接 showit asp <! #include file= conn asp ><! #include file= lib asp ><%Set rs = Server CreateObject ( ADODB Recordset )sql = Select * from c_news order by c_id desc rs Open sql conn %><%if rs EOF and rs BOF thenresponse write ( 暂时还没有文章 <a href=l>添加</a> )elseDo Until rs EOF%><table width= border= align= center cellpadding= cellspacing= bgcolor= # ><tr> <td width= align= right bordercolor= #CCCCCC bgcolor= #CCCCCC ><%=rs( c_time )%></td><td width= bordercolor= #f f f bgcolor= #f f f ><a href=<%=rs( c_filepath )%> target= a_blank ><%=rs( c_title )%></a></td></tr><tr> <td valign= top align= right bordercolor= #ececec bgcolor= #ececec >[<a href=del asp?c_id=<%=rs( c_id )%>>Dell</a>][<a href=change asp?c_id=<%=rs( c_id )%>>Edit</a>][<a >Add</a>]</td><td valign= top bordercolor= #FFFFFF bgcolor= #FFFFFF ><%=encode(rs( c_content ))%></td></tr></table><br><%rs MoveNextLoopend if%><%rs close Set rs = Nothingconn close set conn=Nothing%> 修改数据内容页change asp 修改数据内容 同时也需要修改更新对应的HTML页面 修改其实就是重新生成文件 且文件名和之前一样 类似文件的覆蓋 <! #include file= conn asp ><! #include file= lib asp ><%id=request querystring( c_id )%><%if request form( submit )= change thenc_title=request form( c_title )c_content=request form( c_content )c_id=request form( c_id )c_filepath=request form( c_filepath )Set rs = Server CreateObject ( ADODB Recordset )sql = Select * from c_news where c_id= &c_idrs Open sql conn rs( c_title )=c_titlers( c_content )=c_contentrs( c_time )=now()rs updaters close Set rs = Nothing%><% 打开模板代码 并将其中特殊代码转变为接受值sql = select m_id m_ from c_moban where m_id= set rs =Server CreateObject( adodb recordset )rs open sql conn mb_code=rs ( m_ )rs closeset rs =nothingconn closeset conn=nothingc_title=encode(c_title)c_content=encode(c_content)mb_code=replace(mb_code $cntopLogContentquot; now())mb_code=replace(mb_code $cnleftLogContentquot; c_title)mb_code=replace(mb_code $cnrightLogContentquot; c_content)%><% 生成HTML页面Set fso = Server CreateObject( Scripting FileSystemObject )Set fout = fso CreateTextFile(Server MapPath(c_filepath))fout WriteLine mb_codefout close%><%response redirect( showit asp )%><%end if%><%if id<> thenSet rs = Server CreateObject ( ADODB Recordset )sql= select * from c_news where c_id= &idrs Open sql conn c_id=rs( c_id )c_filepath=rs( c_filepath )c_title=rs( c_title )c_content=rs( c_content )end if%><form action= change asp method= post >Title:<input type= text name= c_title value=<%=c_title%>><br>Content:<br><textarea name= c_content rows= cols= ><%=c_content%></textarea><br><input type= submit value= change name= submit ><input type= reset value= Reset ><input name= c_id type= hidden value= <%=id%> ><input name= c_filepath type= hidden value= <%=c_filepath%> ></form> 删除记录页del asp 同样!删除 除了删除数据库表中的记录 与其对应的HTML页面也需删除 代码如下 <! #include file= conn asp ><%c_id = request querystring( c_id )sql = Select * from c_news where c_id= &c_idSet rs = Server CreateObject ( ADODB Recordset )rs Open sql conn filepath=rs( c_filepath )Set fso = CreateObject( Scripting FileSystemObject )fso DeleteFile(Server mappath(filepath))Set fso = nothingrs deleters close Set rs = Nothingconn closeset conn=nothing%><%response redirect( showit asp )%> 四 其它功能 模板管理页面 不会每次都是打开数据库表进行增加或者修改模板代码吧 所以 管理代码的页面程序不能少了 自己捣鼓下应该很简单的 当然 之前管理员的登录认证程序就不在书中交代了 )还有 如果设计了多个模板 那么在发表信息的时候应添加模板选择单选框 同样在执行转换HTML时 SQL选择的不同m_id了 不管怎么说 先把这些技术自己调试感受下 多多操作 相信 读书千遍 其意自见 cha138/Article/program/net/201311/12218相关参考
ASP.NET生成静态页面和分页主要的原理 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 静态模
JSP结合JavaBean生成静态页面示例 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!lishi
privatestaticStringgetStaticPage(Stringsurl) StringContent=; try javaioInputStreaminputStream
Asp.Net中动态页面转静态页面 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 关于在AspN
ASP.NET入门教程3.1静态页面设计[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nb
ASP.NET入门教程3.1静态页面设计[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nb
ASP.NET生成静态网页的方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ASPNET生成
查看很多知名网站除了采用静态网页还采用了真正的静态分页大家知道静态分页是很容易做好的但关键在于对于新内容的增加后要重新生成分页是很难的要使得分页重新排序就必须重新生成全部的分页这样的工作量可想而知
知识大全 ASP.NET打开新页面而不关闭原来的页面 实例代码
ASP.NET打开新页面而不关闭原来的页面实例代码 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!这
JSP中把动态页面转换为静态页面 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 要自动生成静态页