- 浏览: 53200 次
- 性别:
- 来自: 长沙
最新评论
-
laiyuan:
规范太差了吧,都没注释,完全没达到需要,输出的levelSet ...
字符串多模式匹配算法:关键字过滤技术 -
supercode:
ACCP?
ASP.NET加上水印 -
huqing:
水印 是什么 不懂
ASP.NET加上水印 -
leiwuluan:
.NET截取指定长度汉字超出部分以...代替 -
leiwuluan:
.NET截取指定长度汉字超出部分以...代替
一说到新闻系统的话,一定会谈到静态页面生成的,因为静态页面不但是读取速度快,而且又安全;
静态页面的生成不管是小到现在的企业网站大至网易,QQ等门户都用到了;
那么我们如何来生成静态页呢?
以什么方式生成静态页面呢……
在生成静态页面的时候有那些是要注意的呢:
静态页面命名
统一存放目录
静态页面模板
页面生成
一般来说,在原来新闻系统的基础上我们可以根据GET此页面请求的内容再生成(比如:http;//www.test.com/news.aspx?id=1,GET此页面代码直接写至一个文本文件并以HTML命名即可);
在这里我所采用的是模板生成,先用DW做一个网页模板,将标题,内容等将要动态实现的内容先以$Title$等替换,等在生成的时候替换成新闻的内容;
命名:在生成的时候一般来说是采用新闻发布的时间转换成的字符串,这个是不会重复的。另外我还按年份月份把这些静态文件存放在不同的目录,以便于管理,在这里根据一个新闻的ID调用方法WriteNews()给定参数ID,它就会根据此ID从数据库中读取内容,再根据静态模板页面html/test.html生成新的静态页面存放在相应年份月份的目录
好了,下面是代码:
using System; using System.IO; using System.Web; using System.Text; namespace PowerLeader.Components ...{ /**//// <summary> /// WriteTOHtml 的摘要说明。 /// </summary> public class WriteTOHtml ...{ public WriteTOHtml() ...{ // // TODO: 在此处添加构造函数逻辑 // } public static void WriteNews(int id) ...{ News news = new News(); News.NewsDetails newsDetails = new PowerLeader.Components.News.NewsDetails(); newsDetails = news.GetNews(id); bool flag; flag = WriteFile(newsDetails); } public static bool WriteFile(News.NewsDetails newsDetails) ...{ Directory.CreateDirectory(HttpContext.Current.Server.MapPath("/PowerLeader/html/"+newsDetails.addtime.ToString("yyyy")+"/"+newsDetails.addtime.ToString("MM"))); string path = HttpContext.Current.Server.MapPath("../html/"+newsDetails.addtime.ToString("yyyy")+"/"+newsDetails.addtime.ToString("MM")+"/"); Encoding code = Encoding.GetEncoding("gb2312"); // 读取模板文件 string temp = HttpContext.Current.Server.MapPath("../html/text.html"); StreamReader sr = null; StreamWriter sw = null; string stringTempCode = ""; try ...{ sr = new StreamReader(temp, code); stringTempCode = sr.ReadToEnd(); // 读取文件 } catch(Exception exp) ...{ HttpContext.Current.Response.Write(exp.Message); HttpContext.Current.Response.End(); sr.Close(); } string htmlFileName = newsDetails.addtime.ToString("yyyyMMddHHmmss") + ".html"; // 替换内容 // 这时,模板文件已经读入到名称为str的变量中了 stringTempCode = stringTempCode.Replace("$PageTitle$","抗战OnLine官方网站..."); stringTempCode = stringTempCode.Replace("$Type$",newsDetails.type.ToString().Trim()); stringTempCode = stringTempCode.Replace("$Author$",newsDetails.author.ToString().Trim()); stringTempCode = stringTempCode.Replace("$From$",newsDetails.from.Trim()); stringTempCode = stringTempCode.Replace("$Time$",newsDetails.addtime.ToString().Trim()); stringTempCode = stringTempCode.Replace("$Title$",newsDetails.title.Trim()); stringTempCode = stringTempCode.Replace("$Content$",newsDetails.content); // 写文件 try ...{ sw = new StreamWriter(path + htmlFileName , false, code); sw.Write(stringTempCode); sw.Flush(); } catch(Exception ex) ...{ HttpContext.Current.Response.Write(ex.Message); HttpContext.Current.Response.End(); } finally ...{ sw.Close(); } return true; } } }
发表评论
-
常用表单正则表达式
2010-06-23 16:53 872常用表单正则表达式,仅 ... -
asp.net 页面中添加普通视频的几种方式
2010-06-18 11:29 1004第一种 是通过调用window media player进行 ... -
C#中读取“已注册的文件类型”的图标及读取指定文件图标的方法
2010-04-12 17:02 1547using System; using System.IO; ... -
关于OpenFileDialog的使用
2010-03-11 18:37 1750为了方便同事在日常工作中很快速生成大量数据, 我做 ... -
ASP.NET页面刷新的实现方法总结
2010-02-26 15:44 1309先看看ASP.NET页面刷新的实现方法: 第一: pri ... -
getElementById 与 getElementsByTagName的区别【Javascript】
2010-01-30 14:45 1769在javascript中,操作HTML DOM时,需要经常用到 ... -
javascript实现垂直无缝滚动详解
2010-01-30 14:43 1510无缝滚动可以在flash中 ... -
javascript无缝水平滚动实例
2010-01-30 14:42 2580首先看源代码: <html> <head ... -
分页查询的SQL存储过程
2010-01-29 11:40 630select top 5 * from student ... -
C# Checklistbox用法
2010-01-26 17:54 32401、添加项: checkedListBox1.I ... -
C#实现组合键
2010-01-26 17:25 1949// Ctrl + H if ((Control.Modi ... -
JS实现可拖拽的菜单
2009-11-19 16:56 919Html代码 <html> ... -
认识C#中的委托和事件
2009-11-10 19:53 751【简 介】委托 和 事件在 .Net Framework中的应 ... -
VS2005快捷键大全
2009-11-10 18:25 1702CTRL + SHIFT + B生成解决方案 CTRL + F ... -
CSS+JQuery实现的性感漂亮导航
2009-11-10 18:06 14171.demo.html HTML代码: & ... -
C# WinForm 中批量清除文本框
2009-11-10 16:47 2477/// <summary> ... -
C#类和接口、虚方法和抽象方法及值类型和引用类型的区别
2009-10-13 15:41 10781.C#类和接口的区别接口 ... -
HTML中小meta的大作用
2009-10-13 15:31 628以前一直不知道HTML中的 ... -
javaScript日期时间
2009-09-22 14:09 907JavaScript脚本如下: <script lan ... -
ASP.NET获取客户端IP地址、系统版本、浏览器版本
2009-09-22 13:18 3005using System; using System.Dat ...
相关推荐
asp.net生成HTML页 动态生成静态页面 自动生成HTML页面
ASP.NET生成静态页面实现方法ASP.NET生成静态页面实现方法ASP.NET生成静态页面实现方法
根据页面访问路径,将访问的动态页面,生成为静态页面
ASP.NET自动生成HTML网页 ASP.NET生成静态网页
ASP.NET生成静态页面和分页 ASP.NET生成静态页面和分页 ASP.NET生成静态页面和分页 ASP.NET生成静态页面和分页
asp.net生成静态页面源码例子打包下载
asp.net 生成静态页面asp.net 生成静态页面
asp.net生成静态html,asp.net生成静态htmlasp.net生成静态html
asp.net生成静态页面 asp.net生成静态页面 asp.net生成静态页面
ASP.NET生成静态页的三种方法............
ASP.NET源码——asp.net生成静态页面的模板引擎.zip
asp.net生成静态页面的模板引擎
asp.net生成静态页面并分页 点击按钮把所有动态页面生成静态页面 asp.net生成静态页面并分页 asp.net生成静态页面并分页 asp.net生成静态页面并分页 asp.net生成静态页面并分页 asp.net生成静态页面并分页
Asp.net 生成静态页面的例子生成静态页面的例子
asp.net生成静态页面源码。实现功能有:中小型网站模板技术(生成静态页)示例,主明细表,全局标签,实现了简单的Repeat控件。此项目仅提供基础的模板技术演示,旨在与广大技术员交流之用,也可视为静态模板技术的一...
asp.net数据采集 生成静态页面Demo asp.net数据采集 asp.net生成静态页面 asp.net
点击按钮,将某个aspx文件生成html,亲测可用。没分了,赚点分,谢谢!
整理常见的生成静态页方法代码,已经分页,常见BUG,代码优化。。。