.net生成静态页面原理与代码

一种是直接访问动态页面地址,将其生成的html代码保存成静态页面。另一种是通过读取页面模板,对其中需要替换的内容进行替换的方式进行生成。其中前一种方法简单,对于生成单个页面或少量页面比较实用,而对大量的页面且页面之间彼此关联复杂的,第一种就不太方便。对于使用模板的方法稍微复杂,这里不详细讨论,只给出第一种方法应对不太复杂的项目的应用。

给定生成静态页面入口页面地址,比如index.asp教程x,通过查找其中以href=开始的链接的页面地址,对其按一定规则进行替换后,生成静态化之后的index.html,再依次对index.aspx中的所有链接页面依次进行静态化,如此循环。

下面的示例代码演示了如何将页面中的动态链接地址替换成按规则命名的静态地址。



 


using system;
using system.collections.generic;
using system.web;
using system.web.ui;
using system.web.ui.webcontrols;
using system.text.regularexpressions;

namespace webtest
{
public partial class test : system.web.ui.page
{
protected void page_load(object sender, eventargs e)
{
string content = "<a target="_blank" href="product.aspx?classid=123"><a target="_blank" href="product-view.aspx"><a target="_blank" href="product-view.aspx?id=59"><a target="_blank" href="product-view.aspx?id=11159">";
string newcontent = content;
regex rg = new regex("href="); //正则定位到链接
int len = 5; //正则字符长度
matchcollection mc = rg.matches(content);
foreach (match m in mc)
{
int startindex = m.index + len + 1; //定位到的url的起始位置
int endindex = content.indexof(""", m.index + len + 1); //定位到的url的结束位置
string originalurl = content.substring(startindex, endindex - startindex); //获取到url的全地址
string newurl = "";
newurl = originalurl.replace(".aspx?classid=", "-class-"); //产品类型的替换
newurl = newurl.replace(".aspx?id=", "-"); //产品的替换
newurl = newurl.replace(".aspx", "");
newurl += ".html";

newcontent = newcontent.replace(originalurl +""", newurl +"""); //替换掉原url地址为静态地址
}

response.write(string.format("原内容:{0}<br/>新内容:{1}", content.replace("<", "&lt;").replace(">", "&gt;"), newcontent.replace("<", "&lt;").replace(">", "&gt;")));
}
}
}

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索replace
, string
, 链接
, 代码
, aspx
using
asp生成静态页面代码、phpcms生成静态页面、生成静态页面、mvc生成静态页面、php生成静态页面,以便于您获取更多的相关知识。

时间: 2024-08-01 09:08:40

.net生成静态页面原理与代码的相关文章

ASP.NET动态生成静态页面的实例代码

生成静态页有很多好处,可以缓解服务器压力.方便搜索网站搜索等等,下面介绍一下生成静态页的实例代码,有需要的朋友可以参考一下   最近突然想把项目中新闻管理模块做成静态页,在网上找到很多很好的文章,在这里记录一下,现在只是实现静态页面的生成并没有实现分页功能.其主要原理就是读取数据库的数据然后替换掉静态模板页的内容. 首先制作一个模板页,暂时命名为template.htm,示例代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transit

ASP.NET动态生成静态页面的实例代码_实用技巧

最近突然想把项目中新闻管理模块做成静态页,在网上找到很多很好的文章,在这里记录一下,现在只是实现静态页面的生成并没有实现分页功能.其主要原理就是读取数据库的数据然后替换掉静态模板页的内容.首先制作一个模板页,暂时命名为template.htm,示例代码如下:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-trans

ASP.NET,生成静态页面时,代码HttpContext.Current.Server.Execute()出现错误

问题描述 各位大神好,项目里生成HTML静态页面,执行到HtmlProxy类时,出现异常错误HttpContext.Current.Server.Execute("article_detailed.aspx?nid="+id,sw);麻烦各位大神赐教 解决方案 解决方案二:提示已经说了.你的IIS配置的asp.net模式有错误,它不支持asp.net的这个操作.解决方案三:引用1楼sp1234的回复: 提示已经说了.你的IIS配置的asp.net模式有错误,它不支持asp.net的这个

网站生成静态页面,及网站数据采集的攻、防原理和策略_小偷/采集

发布时间:2005年11月27日 晚 文章作者:翟振凯 (小琦) 交流方式: 个人站:http://www.xiaoqi.net     技术站:http://www.iisvs.net 商业站:http://www.iisvs.com QQ:53353866 22336848 关于本文:         本着互联网共享主义精神,特写此文献给建站新手,授人以鱼,不如授人以渔,本文所讲的只是方法和原理,希 望大家看完此文,能够从中得到些帮助和启发.         本文从一个ASP程序员的角度用大

php 利用数据库信息生成静态页面实例代码

 代码如下 复制代码 $con=mysql教程_connect("localhost","root","")or die("链接错误!!!"); mysql_select_db("message",$con)or die("数据库链接错误!!!"); mysql_query("set names 'gbk'"); $sql=mysql_query("sele

Java 项目生成静态页面的代码_JSP编程

不外乎有以下因素: 1.从页面加载时间来看:静态页面不需要与数据库建立连接,尤其是访问数据量较大的页面,这种页面大多要查很多结果集,因此建立连接次数就增多了,时间不可观,而静态页面则省去了这些时间. 2.从便于搜索引擎抓取的角度来讲:搜索引擎更喜欢静态的网页,静态网页与动态网页相比,搜索引擎更喜欢静的,更便于抓取,搜索引擎SEO排名更容易提高,一些大门户站页面大多都采用静态或伪静态网页来显示,更便于搜索引擎抓取与排名. 3.从安全性来看:静态网页不宜遭到黑客攻击,因为黑客不知道你的网站的后台.网

php 生成静态页面的办法与实现代码详细版_php实例

php中主要用到的就是要用到fread()和fwirte().而静态页面生成了之后,就会牵扯到修改的问题.这里可以用到正则匹配的方法来替换模版中改变的部位.不过此种方法太麻烦,值得推荐的方法是直接把原来生成的模版砍掉,重新生成,呵呵,真正的一了百了. 还需要说明的一点就是,这种生成静态页面的方法一般都用于那些变化不是很频繁的页面,比如信息的最终页面.而针对列表页,如果信息更新不是很频繁的话,也是可取的.现在网上流行好多可以生成静态页面的blog或者论坛程序,都是通过手动点击后台"生成html页&

php生成静态页面程序与原理分析

生成html原理分析 我们把要生成的标签写成一个模板文件,然后再利用php读取把指定标签替换成我们要替换 内容就可以了,现在主流的dedecms系统也是这么做的 生成静态页面代码. 模板即尚未填充内容html文件.例如:  代码如下 复制代码 temp.html <HTML> <TITLE>{ title }</TITLE> <BODY> this is a { file } fileArray;s templets </BODY> </H

jsp 生成静态页面代码

网页特效phttp://www.111cn.net/网页特效p.html target=_blank >jsp教程 生成静态页面代码 buildhtml.java: import java.util.*; import java.io.*; public class htmlfile{ public static void main(string[] args){ try{ string title="测试"; string content="测试" stri