第一种方法是对一个aspx页面生成html文件,先对服务器发送请求aspx页面,取服务器返回的html流,写到一个html文件里,aspx页面显示的是什么,生成的html页面就是什么
1、asp方法:
sub createHTML
dim xmlhttp,strhtml,objAdoStream,i,myurl
set xmlhttp=server.CreateObject("Microsoft.XMLHTTP")
Randomize
i=Int((100 * Rnd) + 1)' 产生1到100之间的随机数,强制从数据库取数据
myurl="asp页面文件名.asp?i=" &i
xmlhttp.open "GET",myurl,false
xmlhttp.send
strhtml=xmlhttp.responsebody
set objAdoStream = Server.CreateObject("ADODB.Stream")
objAdoStream.Type = 1
objAdoStream.Open
objAdoStream.Write strhtml
objAdoStream.SaveToFile server.MapPath("default.htm"),2
objAdoStream.Close
response.Write("成生完毕")
end sub
2、VB.NET做脚本的时候的asp.net方法:(载自:http://erqie.bokee.com/5641140.html)
引用命名空间
Imports System.Net
Imports System.IO
Dim strHtml As String
Dim sr As StreamReader
Dim sw As StreamWriter
Dim code As Encoding = Encoding.GetEncoding("utf-8")
Dim HttpWebRequest As WebRequest
Dim HttpWebResponse As WebResponse
HttpWebRequest = WebRequest.Create("http://localhost/test.aspx")
HttpWebResponse = HttpWebRequest.GetResponse
sr = New StreamReader(HttpWebResponse.GetResponseStream, code)
strHtml = sr.ReadToEnd
sw = New StreamWriter(Server.MapPath("a.htm"), False, code)
sw.WriteLine(strHtml)
sw.Flush()
sw.Close()
Response.WriteFile(Server.MapPath("a.htm"))
3、用C#做脚本的asp.net的方法,这个是我自己写的,在《Visual C#.NET范例入门与提高》的P311,有对WebRequest和HttpRequest、HttpWebRequest、HttpWebResponse四个类的简单说明
private bool CreateList(string url, string fna)
{
bool ok;
//准备生成
string strHtml;
StreamReader sr = null; //用来读取流
StreamWriter sw = null; //用来写文件
Encoding code = Encoding.GetEncoding("utf-8"); //定义编码
//构造web请求,发送请求,获取响应
WebRequest HttpWebRequest = null;
WebResponse HttpWebResponse = null;
HttpWebRequest = WebRequest.Create(url);
HttpWebResponse = HttpWebRequest.GetResponse();
//获得流
sr = new StreamReader(HttpWebResponse.GetResponseStream(), code);
strHtml = sr.ReadToEnd();
//写入文件
try
{
sw = new StreamWriter(fna, false, code);
sw.Write(strHtml);
sw.Flush();
ok = true;
}
catch (Exception ex)
{
HttpContext.Current.Response.Write("<p>写入文件出错:" + ex.Message);
HttpContext.Current.Response.End();
ok = false;
}
finally
{
sw.Close();
}
return ok;
}
调用的时候这样:
//要生成html页面的aspx页面
string url = @"
http://localhost/list.aspx";
//html页面文件名
string fna = Server.MapPath("") + "\\" + DateTime.Now.ToString("yyyyMMddHHmmss") + DateTime.Now.Millisecond.ToString() + ".html";
if (CreateList(url, fna))
{
Response.Write("<p>生成文件成功:" + fna);
}
第二种方法是用一个html模板生成一个html页面,模版里面有对应的标签,可以从数据库和别的地方取数据,填写这个标签,生成一个html页面,这个方法在很多新闻系统里有用到
我参考这里面的代码写的:http://www.webstudy8.com/web/net/201/065118272748882.html
private string CreateDetailPage(string EventID,string EventTitle, string EventBody, string EventTime, string EventStat)
{
//模版所有路径、模版文件名、生成的文件路径、生成的文件名
string path, temp, htmlfilepath,htmlfilename;
path = Server.MapPath("");
temp = Server.MapPath("testhtml.htm");
htmlfilepath = path;
htmlfilename = DateTime.Now.ToString("yyyyMMddHHmmss") + DateTime.Now.Millisecond.ToString() + ".html";
//读模版
Encoding code = Encoding.GetEncoding("gb2312");
StreamReader sr = null;
StreamWriter sw = null;
string str = "";
try
{
sr = new StreamReader(temp, code);
str = sr.ReadToEnd(); // 读取文件
}
catch (Exception exp)
{
HttpContext.Current.Response.Write("<p>读取文件出错:" + exp.Message);
HttpContext.Current.Response.End();
sr.Close();
}
// 替换内容
// 对应模版里的设置要修改
str = str.Replace("re_symbol_EventID", EventID);
str = str.Replace("re_symbol_EventTitle", EventTitle);
str = str.Replace("re_symbol_EventBody", EventBody);
str = str.Replace("re_symbol_EventTime", EventTime);
str = str.Replace("re_symbol_EventStat", EventStat);
// 写文件
try
{
sw = new StreamWriter(htmlfilepath + "\\" + htmlfilename, false, code);
sw.Write(str);
sw.Flush();
}
catch (Exception ex)
{
HttpContext.Current.Response.Write("<p>写入文件出错:" + ex.Message);
HttpContext.Current.Response.End();
}
finally
{
sw.Close();
}
return htmlfilename;
}
调用的时候这样:
//取内容,这里我取了页面上的一个gridview里的选中行的数据
int i;
i = GridView1.SelectedIndex;
if (i == null || i==-1) i = 0;
string EventID, EventTitle, EventBody, EventTime, EventStat;
EventID=GridView1.Rows[i].Cells[0].Text;
EventTitle=GridView1.Rows[i].Cells[1].Text;
EventBody=GridView1.Rows[i].Cells[2].Text;
EventTime=GridView1.Rows[i].Cells[3].Text;
EventStat=GridView1.Rows[i].Cells[4].Text;
//生成文件,返回文件名
string fna;
fna=CreateDetailPage(EventID, EventTitle, EventBody, EventTime, EventStat);
Response.Write("<p>生成文件成功:" + fna);
对比两种方法,我觉得第二种比第一种好,灵活,生成的速度快
因为第一种方法,要发送请求,请求在服务器端访问数据库,生成html流,返回客户端,我们要获取这个html流,第二种方法,只要访问数据库,取数据,读取文本文件(html模版),替换文本,就可以了
模板文件是静态的html页面,修改很方便,在asp.net里,如果生成一个aspx页面,当我们要改变页面的时候,我们要重新修改aspx页面,有时候我们要重新编译整个网站才可以运行,如果修改模板就没有这个问题了
相关推荐
ASP.NET 2.0使用Web Part创建应用程序之二(共二) 体验 .net2.0 的优雅(2) -- ASP.net 主题和皮肤 NET2.0系列介绍(一).NET 2.0 中Web 应用程序主题的切换 ASP.NET 2.0 中Web 应用程序主题的切换 2.0正式版中...
网奇E游通旅游网站建设系统采用三层架构开发,全站生成存静态HTML,页面代码全部采用DIV CSS,完全符合SEO标准,有利于搜索引擎关键排名优化,前台基于下一代互联网渲染技术,让您的网站在未来发展中处于领先地位!...
全国知名美工制作模板,标准化设计的企业门户网站建站管理系统,完全免费的灯饰企业公司网站源码,安防公司网站模板,生成html的包装公司网站模板,印刷厂网站源码,机床公司网站模板,家居装饰公司网站建设,...
本系统主要特点是区别人以往人才招聘模式,采用了最科学化的人才招聘模式,如:增加招才币,积分,积分兑换招才币等等,即使...网站生成静态HTML页面,不仅大大提高搜索引擎收录,而且提高了网站的访问速度和效率。
分类信息系统源码,分类信息网源码下载,分类信息网站全站源码,分类信息网站模板,网页模板,分类信息发布网站系统采用asp.net编程并采用mssql大型数据库,并可后台控制生成静态html文件,或者不生成html,开发的生活分类...
分类信息系统源码,分类信息网源码下载,分类信息网站全站源码,分类信息网站模板,网页模板,分类信息发布网站系统采用asp.net编程并采用mssql大型数据库,并可后台控制生成静态html文件,或者不生成html,开发的生活分类...
本系统是为中小型企业量身打造的一套高效网站建设的系统。它具有完善的企业网站功能模块,全面整合信息协同管理系统(OA),在独立动态后台管理生成HTML静态前台网页。让您提升建站效率,提高服务质量,降低建站成本。...
采用微软 ASP.NET2.0(C#) 设计,使用分层设计模式,页面高速缓存,是迄今为止国内最先进的.NET语言企业网站管理系统。整套系统的设计构造,完全考虑大中小企业类网站的功能要求,网站的后台功能强大,管理简捷,支持...
GGCMS是基于微软.NET 2.0平台、SQL SERVER数据库开发的网站内容管理系统。不但简单易用,而且安全可靠、功能强大,并且完全免费没有任何功能限制。系统提供的“计划任务”,可以自动实现采集、审核、生成静态、执行...
良精.Net企业网站管理系统中英文加繁体三语版本,美工风格相当完美,功能完善强大,所有操作均可在后台完成,企业网站建设的不二选择。 良精.Net企业网站管理系统 5.1 新增功能: 静态生成 风格切换 模版管理 后台...
网奇E游通旅游网站建设系统采用三层架构开发,全站生成存静态HTML,页面代码全部采用DIV CSS,完全符合SEO标准,有利于搜索引擎关键排名优化,前台基于下一代互联网渲染技术,让您的网站在未来发展中处于领先地位!...
整个网站可以快速地、全部生成静态页面,支持动态、纯静态、伪静态等多种格式发布,易于搜索引擎的快速收录,有效提升网站搜索提名,充分满足您的多样化需要,让您的网站立于不败之地。发布静态站点时可以选择不同的...
“网奇Etrip”旅游网站管理系统,采用ASP.NET2.0语言开发,它集成新闻模块、专题模块、酒店模块、线路模块、景点模块、订票模板、SEO优化模块、短信营销模块等多项强大功能。 系统采用三层架构开发,全站生成存静态...
采用sql server数据库,数据容量巨大,快速,稳定是建立大型人才网站的好程序,采用全新的生成静态页技术;数据处理方面采用全存储过程实现,可快速实现大批量数据处理;采用FMS2.0技术解决视频面试和录制;系统适合建设...
使用 ASP.NET2.0 的 URL 重写技术和后台设置结合,对每一个前台页面进行虚拟静态化,每一个栏目页面的名称都可通过后台标识设置,这样更利于搜索引擎收录,利于网络推广。 3.模板制作简单,灵活,最少只需2页html,...
iHuzuCMS狐族内容管理系统,是国内CMS市场的新秀、也是国内少有的采用微软的ASP.NET 2.0 + SQL2000/2005 技术框架开发的CMS,充分利用ASP.NET架构的优势,突破传统ASP类CMS的局限性,采用更稳定执行速度更高效的面向...
分类信息系统源码,分类信息网源码下载,分类信息网站全站源码,分类信息网站模板,网页模板,分类信息发布网站系统采用asp.net编程并采用mssql大型数据库,并可后台控制生成静态html文件,或者不生成html,开发的生活分类...
25亿企业网站管理系统采用asp.net(C#)+Mssql2000构架,全站页面使用div+css 2.0设计界面,内置功能强大的SEO搜索引擎优化机制,同时支持全球多国语言建站(高达支持51个国家语言自由设置)。25亿企业网站管理系统...
整站程序支持全静态HTML文件生成,可将站点首页、频道首页、各栏目及每个内容页都生成静态HTML文件,这样不仅可以减轻服务器的负载提高搜索收录率,同时也可以实现内容收费和访问权限控制。多种生成文件命名形式可...
整个系统都可以生成静态HTML,有效的提高了系统的性能,不仅减轻服务器的负载提高搜索收录率,增加网站收录。符合百度等搜索引擎最新算法要求。网站支持无限的语言种类、无限菜单栏目及无限栏目分类。网站页面div+...