ASP.NET 笔记(一)、概述



一、概述
    ASP.NET 提供了完整的服务器端对象模型,可以在运行期间使用。ASP.NET 可以在其环境中把页面上的所有控件作为对象来访问。在页面上使用控件功能,生成 HTML 内容的 ASP.NET 通常称为 Web 窗体。

    基本上,Web 窗体上控件的状态信息(包括在文本框中输入的信息、下拉列表中的选项等)存储在隐藏的 viewstate 字段中,这个字段是服务器生成的页面的一部分,并传送给用户。后续的操作称为会送(postback)。



二、ASP.NET    Web 窗体
  ● 保留文件夹 App_Date,包含数据文件,例如 XML文件或数据库文件。
  ● 在 ASP.NET 页面中,只有一个服务器端<form>元素。
  ● runat="server" 表示窗体的处理将在服务器上进行,必须具备,否则窗体不会执行任何操作。
  ● 顶部的 <@% Page %> 标记,定义了页面特性。


2.1、流程
  .aspx     布局(HTML)和ASP.NET 代码。
  .aspx.cs    用于定制窗体操作的代码。

预编译站点流程:
    ● ASP.NET 处理器执行页面,确定对象创建,以实例化页面对象模型。
    ● 动态创建一个基类,包括页面上的控件成员和这件控件的事件处理程序(例如按钮单击事件)。
    ● 页面代码文件与这个基类合并,构成完整的对象模型。
    ● 编译所有代码,并告诉缓存起来。
    ● 生成 HTML,返回给用户。


2.2、ASP.NET 中常见的系统对象
 
Page 对象:页面自身的方式。

Request 对象:封装了由客户端生成的 HTTP 请求的细节(参数、属性和数据)。
    ● QueryStrings 属性收集了 Get 请求发送的数据。
    ● From 属性收集了 Post 请求发送的数据。
    ● ServerVariable(环境变量)集合中包含服务器和客户端的系统信息。在 Page 指令里添加属性 Trace="True" 可以追踪详细的环境变量信息。
    ● Params 集合包含了上三种方式的集合。

Response 对象:响应返回到 HTTP 客户端的输出。
    ● Write() 方法可以输出指定的文本内容。
    ● End() 方法可以使 Web 服务器停止当前的程序并返回结果。
    ● Redirect() 方法可以将页面重定向到另一页面。

Session 对象:作用于会话期的页面共享信息。
    Session["xxxx"] = 值对象;
    对象 = Session["xxxx"];

Cookie 对象:保持与客户端的共享信息方式。对应于 HttpCookie 类。
    Response.Cookies["xxxx"].Value = 字符串变量;
    string xxx = Request.Cookies["xxx"].Value;
   
Application 对象:作用于应用程序运行期提供共享信息。
    Application["xxxx"] = 值对象;
    值变量 = Application["xxxx"];

Server 对象:只是封装了一些 Web 服务器相关的常用方法。
    Server.MapPath("~/");        //返回所在虚拟目录的物理路径
    Server.HtmlEncode("xxxx");        //不编译 HTML 代码,直接在页面输出
    Server.Encode("xxxxx");        //对 URL 地址的特殊字符进行编码
    Server.Execute("xxxxx");        //执行参数指定的页面,执行完后返回本页
    Server.Transfer("xxxx");        //执行参数指定的页面,执行完后结束



三、应用程序配置
    应用程序定义为项目中的所有文件,由 Web.config 文件配置。

    第一次创建应用程序(即收到第一个 HTTP 请求时),将创建 Application 对象。此时还将触发 Application_Start 事件,创建一个 HttpApplication 实例池。每个输入的请求都会接收到这样一个实例,执行请求的处理过程。与全局的 Application 对象不同,所有的 HttpApplication 实例完成任务后,就触发 Application_End 事件,应用程序终止运行,消除 Application 对象。

    在单个用户使用 Web 应用程序时,会启动一个会话,与应用程序类似,会话将创建一个用户特定的 Session 对象,并触发 Session_Start 事件。在一个会话中,每个请求都将触发 Application_BeginRequest 和 Application_EndRequest 事件。在一个会话中可以多次触发这两个事件访问应用程序的不同资源。会话可以手动终止,也可以因为没有后续请求而超时终止。会话种子会触发 Session_End 事件,消除 Session 对象。



posted on 2008-10-31 23:16  黄小二  阅读(191)  评论(0编辑  收藏  举报