仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 763|回复: 8
打印 上一主题 下一主题

[学习教程] ASP.NET网页编程之.NET中怎样天生静态页

[复制链接]
小魔女 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:30:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
你所列的那些其实差不多都可以称为应用服务器(servlet应该说是一种语言更合适)java是开放的,相同的工具就会有很多公司在做,加上java已经发展了很多年了,因此这些工具就很多了。他们很多都是类似的。怎样天生静态页:

计划1:
///<summary>
///传进URL前往网页的html代码
///</summary>
///<paramname="Url">URL</param>
///<returns></returns>
publicstaticstringgetUrltoHtml(stringUrl)
{
errorMsg="";
try
{
System.Net.WebRequestwReq=System.Net.WebRequest.Create(Url);
//Gettheresponseinstance.
System.Net.WebResponsewResp=wReq.GetResponse();
//ReadanHTTP-specificproperty
//if(wResp.GetType()==HttpWebResponse)
//{
//DateTimeupdated=((System.Net.HttpWebResponse)wResp).LastModified;
//}
//Gettheresponsestream.
System.IO.StreamrespStream=wResp.GetResponseStream();
//DimreaderAsStreamReader=NewStreamReader(respStream)
System.IO.StreamReaderreader=newSystem.IO.StreamReader(respStream,System.Text.Encoding.GetEncoding("gb2312"));
returnreader.ReadToEnd();

}
catch(System.Exceptionex)
{
errorMsg=ex.Message;
}
return"";
}

你能够用这个函数猎取网页的客户真个html代码,然后保留到.html文件里就能够了。

计划2:
天生单个的静态页面不是难点,难的是各个静态页面间的联系关系和链接怎样坚持完全;
出格是在页面频仍更新、修正、或删除的情形下;

像阿里巴巴的页面也全体是html的,估量用的是地点映照的功效
关于地点映照可参考:http://www.easewe.com/Article/ShowArticle.aspx?article=131

能够看看这个页面,剖析一下他的“竞价倒计时”功效
http://info.china.alibaba.com/news/subject/v1-s5011580.html?head=top4&Bidding=home5

ASP.Net天生静态HTML页
在Asp中完成的天生静态页用到的FileSystemObject工具!
在.Net中触及此类操纵的是System.IO
以下是程序代码注:此代码非原创!参考他人代码

CODE:
//天生HTML页
publicstaticboolWriteFile(stringstrText,stringstrContent,stringstrAuthor)
{
stringpath=HttpContext.Current.Server.MapPath("/news/");
Encodingcode=Encoding.GetEncoding("gb2312");
//读取模板文件
stringtemp=HttpContext.Current.Server.MapPath("/news/text.html");
StreamReadersr=null;
StreamWritersw=null;
stringstr="";
try
{
sr=newStreamReader(temp,code);
str=sr.ReadToEnd();//读取文件
}
catch(Exceptionexp)
{
HttpContext.Current.Response.Write(exp.Message);
HttpContext.Current.Response.End();
sr.Close();
}


stringhtmlfilename=DateTime.Now.ToString("yyyyMMddHHmmss")+".html";
//交换内容
//这时候,模板文件已读进到称号为str的变量中了
str=str.Replace("ShowArticle",strText);//模板页中的ShowArticle
str=str.Replace("biaoti",strText);
str=str.Replace("content",strContent);
str=str.Replace("author",strAuthor);
//写文件
try
{
sw=newStreamWriter(path+htmlfilename,false,code);
sw.Write(str);
sw.Flush();
}
catch(Exceptionex)
{
HttpContext.Current.Response.Write(ex.Message);
HttpContext.Current.Response.End();
}
finally
{
sw.Close();
}
returntrue;

此函数放在Conn.CS基类中了
在增加旧事的代码中援用注:工程名为Hover

if(Hover.Conn.WriteFilethis.Title.Text.ToString),this.Content.Text.ToString),this.Author.Text.ToString)))
{
Response.Write("增加乐成");
}
else
{
Response.Write("天生HTML堕落!");
}



模板页Text.html代码


CODE:
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN">
<HTML>
<HEAD>
<title>ShowArticle</title>
<body>
biaoti
<br>
content<br>
author
</body>
</HTML>
biaoti
<br>
content<br>
author
</body>
</HTML>

提醒增加乐成后会出以以后工夫为文件名的html文件!下面只是把传送过去的几个参数间接写进了HTML文件中,在实践使用中必要先增加数据库,然后再写进HTML文件

计划3:
给一个客户端参考的例子(SJ)
它的感化在于以客户真个体例猎取某个页面的代码,然后能够做为其他用处,本例是间接输入
<script>
varoXmlHttp=newActiveXObject("Microsoft.XMLHTTP");
oXmlHttp.open("GET","http://www.ckuyun.com",false);
oXmlHttp.send()
varoStream=newActiveXObject("ADODB.Stream");
if(oStream==null)
alert("您的呆板不撑持ADODB.Stream.")
else
{
oStream.Type=1;
oStream.Mode=3;
oStream.Open();
oStream.Write(oXmlHttp.responseBody);
oStream.Position=0;
oStream.Type=2;
oStream.Charset="gb2312";
varresult=oStream.ReadText();
oStream.Close();
oStream=null;
varaa=window.open("","")
document.write(result);
aa.document.write(result);
}
</script>

计划4:学csdn一样。用xml保留数据,模版XSL也只要一个文件。
利用xml来保留数据,利用xsl来界说模板而且生称数据。能够经由过程xsl来很便利的在客户端大概服务段显现数据。假如要天生静态叶面那更复杂了。往查一下.net的xml类包成绩办理。
长处:能够便利疾速转换成你想要的格局和内容。
弱点:必要进修更多的内容,欠好进门。

计划5:
思绪

  1.使用如Dw-Mx如许的工具天生html格局的模板,在必要增加格局的中央到场特别标志(如$htmlformat$),静态天生文件时使用代码读取此模板,然后取得前台输出的内容,增加到此模板的标志地位中,天生新文件名后写进磁盘,写进后再向数据库中写进相干数据。
2.利用背景代码硬编码Html文件,可使用HtmlTextWriter类来写html文件。
长处

  1.能够创建十分庞大的页面,使用包括js文件的办法,在js文件内到场document.write()办法能够在一切页面内到场如页面头,告白等外容。

  2.静态html文件使用MSWindows2000的IndexServer能够创建全文搜刮引擎,使用asp.net能够以DataTable的体例失掉搜刮了局。而Win2000的Index服务没法查找xml文件的内容。假如包含了数据库搜刮与Index索引两重查找,那末此搜刮功效将十分壮大。

  3.节俭服务器的负荷,哀求一个静态的html文件比一个aspx文件服务器资本节俭很多。

  弱点

  思绪二:假如用硬编码的体例,事情量十分年夜,必要十分多的html代码。调试坚苦。并且利用硬编码天生的html款式没法修正,假如网站改换款式,那末必需得从头编码,给前期带来伟大的事情量。

  因而这里接纳的是第一种思绪

  示列代码

  1.界说(template.htm)html模板页面

  <html>

  <head>

  <title></title>

  <metahttp-equiv="Content-Type"content="text/html;charset=gb2312">

  </head>

  <body>

  <table$htmlformat[0]height="100%"border="0"width="100%"cellpadding="10"cellspacing="0"bgcolor="#eeeeee"style="border:1pxsolid#000000">

  <tr>

  <tdwidth="100%"valign="middle"align="left">

  <spanstyle="color:$htmlformat[1];font-size:$htmlformat[2]">$htmlformat[3]</span>

  </td>

  </tr>

  </table>

  </body>

  </html>

  2.asp.net代码:

  //---------------------读html模板页面到stringbuilder工具里----

  string[]format=newstring[4];//界说和htmlyem标志数量分歧的数组

  StringBuilderhtmltext=newStringBuilder();

  try

  {

   using(StreamReadersr=newStreamReader("寄存模板页面的路径和页面名"))

   {

  Stringline;

  while((line=sr.ReadLine())!=null)

  {

   htmltext.Append(line);

  }

  sr.Close();

   }

  }

  catch

  {

   Response.Write("<Script>alert(读取文件毛病)</Script>");

  }

  //---------------------给标志数组赋值------------

  format[0]="background="bg.jpg"";//背景图片

  format[1]="#990099";//字体色彩

  format[2]="150px";//字体巨细

  format[3]="<marquee>天生的模板html页面</marquee>";//笔墨申明

  //----------交换htm里的标志为你想加的内容

  for(inti=0;i<4;i++)

  {

   htmltext.Replace("$htmlformat["+i+"]",format);

  }

  //----------天生htm文件------------------DD

  try

  {

   using(StreamWritersw=newStreamWriter("寄存路径和页面名",false,System.Text.Encoding.GetEncoding("GB2312")))

  {

   sw.WriteLine(htmltext);

   sw.Flush();

   sw.Close();

  }

  }

  catch

  {

  Response.Write("Thefilecouldnotbewirte:");

  }

  小结
  用此办法能够便利的天生html文件。程序利用了是轮回交换,因而对需交换大批元素的模板速率十分快。

计算机发展到这个时候,很多技术日益成熟,想学好一种技术都是不容易的,当你学会用的时候你对它的很多原理可能很不了解)
小妖女 该用户已被删除
沙发
发表于 2015-1-18 15:30:22 | 只看该作者
大哥拜托,Java在95年就出来了,微软垄断个妹啊,服务器市场微软完全是后后来者,当年都是Unix的市场,现在被WindowsServer和Linux抢下大片,包括数据库也一样。
谁可相欹 该用户已被删除
板凳
发表于 2015-1-22 07:48:37 | 只看该作者
可以通过在现有ASP应用程序中逐渐添加ASP.NET功能,随时增强ASP应用程序的功能。ASP.NET是一个已编译的、基于.NET的环境,可以用任何与.NET兼容的语言(包括VisualBasic.NET、C#和JScript.NET.)创作应用程序。另外,任何ASP.NET应用程序都可以使用整个.NETFramework。开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等。
乐观 该用户已被删除
地板
发表于 2015-1-30 23:52:36 | 只看该作者
Servlet的形式和前面讲的CGI差不多,它是HTML代码和后台程序分开的。它们的启动原理也差不多,都是服务器接到客户端的请求后,进行应答。不同的是,CGI对每个客户请求都打开一个进程(Process)。
飘飘悠悠 该用户已被删除
5#
发表于 2015-2-6 17:16:18 | 只看该作者
可以看作是VC和Java的混合体吧,尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性。
小女巫 该用户已被删除
6#
发表于 2015-2-17 14:27:50 | 只看该作者
比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变。
第二个灵魂 该用户已被删除
7#
发表于 2015-3-5 20:13:41 | 只看该作者
现在主流的网站开发语言无外乎asp、php、asp.net、jsp等。
山那边是海 该用户已被删除
8#
发表于 2015-3-12 13:54:28 | 只看该作者
碰到复杂点的问题都不知道能不能解决,现在有点实力的公司都选择自已在开源的基础上做开发。但没听说过有人在IIS上做改进的,windows、sqlserver集群方面的应用也很少见。
爱飞 该用户已被删除
9#
发表于 2015-3-19 22:52:59 | 只看该作者
同时也感谢博客园给我们这个平台,也感谢博客园的编辑们做成专题引来这么多高人指点。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 18:07

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表