.net生成静态页方法总结

      第1种方法:
            用server.Execute(path As String,writer As Sysetem.IO.TextWriter) 方法,这种方法很简单,向服务器放松动态网页请求,获取页面的客户端html代码,然后把内容写进文件里.这种方法写起来比较简单:

 1        Dim swHtml As StringWriter = New StringWriter()
 2        Server.Execute("http://localhost/newsSzhome/manage/newstemplate.aspx, swHtml)
 3        Dim strContent As String = swHtml.ToString()
 4
 5        Dim filepath As String = "d//news//001.html"
 6        If Not (System.IO.Directory.Exists(System.IO.Path.GetDirectoryName(filepath))) Then
 7            System.IO.Directory.CreateDirectory(System.IO.Path.GetDirectoryName(filepath))
 8        End If
 9        Dim sw As StreamWriter = New StreamWriter(filepath, False, System.Text.Encoding.Default)
10        Try
11            sw.Write(strContent )
12        Catch ex As Exception
13            Throw ex
14        Finally
15            sw.Flush()
16            sw.Close()
17        End Try

   这种方法是必须读网页地址,缺点显而易见:速度慢。另外如果请求的动态页面有验证控件的话,返回的html页面却无法进行数据验证。如果在同一个项目里的程序用这个还是很好的,但是如果是要把生成程序跟网页程序分开(如写成webservice)的话,用这个方法就相当与去打开一个外网网页,效率肯定会大打折扣(而且我在webservice上用这方法根本运行不了,程序出异常!具体原因没有去探索,估计应该是权限的问题).
        
        第2种方法:
           这个方法跟第1种方法相似(也是需要读取网页内容),用System.Net.WebRequest.Create(path As String)方法建里一个需要读取的网页的webRequest,再获得它的WebResponse,再以流的形式写入文件.
            


 1Dim wReq As System.Net.WebRequest = System.Net.WebRequest.Create("http://localhost/newsSzhome/manage/newstemplate.aspx"
 2        Dim wResp As System.Net.WebResponse = wReq.GetResponse
 3        Dim srs As System.IO.Stream = wResp.GetResponseStream
 4        Dim sr As System.IO.StreamReader = New System.IO.StreamReader(srs, System.Text.Encoding.Default) 'GetEncoding("gb2312"))
 5        Dim strContent As String = sr.ReadToEnd()
 6Dim filepath As String = "d://news//0001.html"
 7        If Not (System.IO.Directory.Exists(System.IO.Path.GetDirectoryName(filepath))) Then
 8            System.IO.Directory.CreateDirectory(System.IO.Path.GetDirectoryName(filepath))
 9        End If
10        Dim sw As StreamWriter = New StreamWriter(filepath, False, System.Text.Encoding.Default)
11        Try
12            sw.Write(temp)
13        Catch ex as Exception
14            Throw ex
15        Finally
16            sw.Flush()
17            sw.Close()
18        End Try

            效果就不多说了,跟第1种方法问题一样!(但是我在webservice中用上面这个方法生成时还是可以成功的,但是速度慢很多.)        

  第3种,就是最常用也最实用的字符替代方法String.Replace(),从文件读取模版,替换模版中的参数后输出文件,这种方法的生成速度上比第一种要快许多,而且模版内容可以用工具任意编辑
主要代码:


 1   Dim sr As New System.IO.StreamReader("d://newsDetail_template.htm", System.Text.Encoding.Default)
 2        Dim temp As String = sr.ReadToEnd()
 3        temp = temp.Replace("@$_CREATEDATE_$@", DateTime.Now.ToString)
 4  Dim filepath As String = "d://news//001.html"
 5        If Not (System.IO.Directory.Exists(System.IO.Path.GetDirectoryName(filepath))) Then
 6            System.IO.Directory.CreateDirectory(System.IO.Path.GetDirectoryName(filepath))
 7        End If
 8        Dim sw As StreamWriter = New StreamWriter(filepath, False, System.Text.Encoding.Default)
 9        Try
10            sw.Write(temp)
11        Catch
12            Return false
13        Finally
14            sw.Flush()
15            sw.Close()
16        End Try

            这个方法读取的是硬盘里的纯文件类型,在程序后台查询数据去替换掉模板文件里的特定字符.

时间: 2024-10-03 17:11:22

.net生成静态页方法总结的相关文章

替换式的asp.net生成静态页方法

第一步:新建项目,创建一个简单模版页:TemplatePage.htm  代码如下 复制代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">

php生成静态页方法

  一,PHP脚本与动态页面. PHP脚本是一种服务器端脚本程序,可通过嵌入等方法与html文件混合,也可以类,函数封装等形式,以模板的方式对用户请求进行处理.无论以何种方式,它的基本原理是这样的.由客户端提出请求,请求某一页面 -----> WEB服务器引入指定相应脚本进行处理 -----> 脚本被载入服务器 -----> 由服务器指定的PHP解析器对脚本进行解析形成HTML语言形式 ----> 将解析后的HTML语句以包的方式传回给浏览器.由此不难看出,在页面发送到浏览器后,P

跪求.net 仿照新浪网后台动态生成静态页方法

问题描述 我是指前台.例如:访问某条新闻:动态地址是:http://www.xx.com/list.aspx?id=33;而静态地址是:http://www.xx.com/news/200-0404/33.html主要是做了个小门户网站怕同时访问承受不了求个方法最好给例子谢谢大家了 解决方案 解决方案二:通过URLRewriter重写地址<LookFor>~/(.[0-9]*).html</LookFor><SendTo>~/ArticleDetail.aspx?ID=

Asp.net 2.0 中将网站首页生成静态页的一个比较好的方法

asp.net|比较|静态 做网站时,有时为了提高性能会将网站首页生成静态页(当然, Asp.net中页面缓存也是一个不错的选择了将页面生成静态的方法有多中,据不完全统计有N种(N>1)呵呵以下的方法来自 "孟子E " 解释的方法 代码如下     protected override void Render(HtmlTextWriter writer)    ...{        System.IO.StringWriter html = new System.IO.Stri

asp.net实现生成静态页并添加链接的方法_实用技巧

本文以实例讲解了asp.net实现生成静态页并添加链接的方法,非常实用的功能,通过本实例可以加深读者对于asp.net下文件操作的认识. 1.创建一个静态网页模板 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http

CodeIgniter生成静态页的方法_php实例

本文实例讲述了CodeIgniter生成静态页的方法.分享给大家供大家参考,具体如下: 现在我们来开发如何让CI框架生成静态页面.下面直接帖代码: $this->output->get_output(); 使用这个方法,你可以可以得到将要输出的数据,并把它保存起来,留着它用(我们做新闻类型网站的时候,常常需要生成静态的HTML文件). $string = $this->output->get_output(); $this->load->helper('file');

基于PHP生成静态页的实现方法_php实例

t1.php 复制代码 代码如下: <?php// 方法一根据模版生成静态页面// replaceTemplateString函数用于替换模板中指定字符串function replaceTemplateString($templateString) {    // 用来替换的变量    $title = "文章标题";    $body = "这里是文章主体";    // 替换模板中指定字符串    $showString = str_replace ( &

.net 生成静态页几种方法

.net 生成静态页几种方法 方案1: /// <summary> /// 传入URL返回网页的html代码 /// </summary> /// <param name="Url">URL</param> /// <returns></returns> public static string getUrltoHtml(string Url) { errorMsg = ""; try { Sy

asp.net 生成静态页笔记

1.使用serever.Excute 复制代码 代码如下: StreamWriter sw = new StreamWriter(Server.MapPath("html/Login.html"), false); Server.Execute("ShowColumn.aspx?id=1&page=2", sw); sw.Close(); 2.替换字符 url重写 1.定义重写规则 urls.xml 变成urls.config 复制代码 代码如下: <