黑马程序员- ASP.NET(2)学习日记

---------------------- Windows Phone 7手机开发.Net培训、期待与您交流! ----------------------

 

WebForm中包含两个文件:aspx(前台文件)和aspx.cn(后台文件)。

 

aspx等于html+js+css。

 

WebForm前后台文件被访问时,会被编译成类(不是相同的类),前台类继承于后台类。被访问时服务器会创建前台页面类对象,作为处理浏览器请求的对象。

前台类对象是如何结合后台类的方法生成整个页面的HTML代码?简单说是:被请求时页面控件树的生成,控件树负责组织整个页面的内容(-BuildControlTree()—生成控件树的方法)。具体是:页面类对象,通过控件树的方式,帮我们封装了整个页面的HTML源代码和c#代码。都封装到页面类对象的控件集合属性中,那么要生成HTML代码的时候,只要循环遍历整个控件树,并调用每个控件的-Render-方法为每个控件生成HTML代码,就可以拼成一个完整的页面的HTML代码了。

 

前台页面类->后台页面类->Page->TemplateControl->Contron(包含ControlCollection集合)。其中->是继承于的意思。

 

后台文件aspx.cs可以通过runat=”server”调用前台控件如:在aspx中有一行代码

<input type=”text” id=”txtName” runan=”server”/>

后台代码aspx.cs中相应代码如下:

this.txtName.value=”你好!”;程序运行结果是在text文本框中显示“你好”。

前台页面访问后台页面的方法,是把后台页面设置为public或protected,并且要写到<%    %>之中。另外在<%    %>中可以任意写C#代码。

程序实例如下:

aspx.cs中代码:

protected  string strString=”哈哈哈哈哈”

protected string Hello()

{

  return “Hello!’’;

}

aspx中代码如下:

<head runan=”server”>

<title></title>

<head/>

<body>

<form id=”form1” runat=”server”>   //runan=”server”表明这个前台对象已经成为后台的非私有化变量

<% for (i=0;i<5;i++)

  {

  Response.Write(i+Hello()+strString+”<br/>”);//说明在前台的<% %>中不仅可以访问后台的非私有化方法,也可以访问后台的非私有化变量。

}

%>

<%=strString%>  //这种尖括号等于号的方法可以在前台简单的输出字符串,它相当于<%Response.Write(strString);%>

</form>

</body>

 

总结:1  浏览器和服务器的交互是通过Socket

      2  浏览器和服务器的交互语法:http

      3  浏览器要和服务器交互的目的:获取服务器资源(html,图片,js,css等)

      4  服务器要做的事情就是想尽办法满足浏览器的要求,所以一旦浏览器的请求时动态页面的时候,服务器就要创建页面类对象并执行里面的方法,最后生成的html代码要返回浏览器。

 

Request成员Request.UrlReferrer:请求的来源.

取得请求来源string url=Request.UrlReferrer.ToString;

url.IndexOf(“goole.com.hk”)>-1这句话表明,取得的请求来源url中不包含goole.com.hk

Resquest.UserHostAddress  获得访问者的IP,是通过和浏览器通信的套接字的RemoteEndPonit(远程网络节点)获得。

aspx.cs中有下面程序

 protected void Page-Load(object sender,EventArgs e)

{

      for(var i=0;i<10;i++)

        {

   Response.Write(“我爱北京天安门”+iToString);

   Response.Flush();//立刻输出缓存数据

   System.Threading.Sleep(1000);//等待1秒钟输出一次

}

}

设置Response.Buffer、Response.BufferOutput属性可以不用把数据存在缓存里,直接输出。

Response.Clear清空缓存

Response.ContentEncoding输出流的编码

Response.ContentType输出流的内容类型(如text/html   普通文本:text/plain  图片:image/JPEG)

Response.OutputStream输出流

Response.End终止程序

---------------------- Windows Phone 7手机开发.Net培训、期待与您交流! ----------------------

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值