在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
MSDN: 1、IIS7.0的ASP.NET应用程序的生命周期 ASP.NET页面的生命周期一、基础知识1、一个ASP.NET Web网站包含如下: Default.aspx文件为ASP.NET Web窗体文件,该文件作为网站的默认主页,可以包含Web控件 Default.aspx.cs文件为网页运行时要编译的源代码文件 Web.config文件为Web配置文件 Global.asax文件记录需要初始化的变量,全局文件 2、新建网站时选择的Web位置 *文件系统网站:用户选择在本地计算机上某个文件夹中存储页面和其他文件 *HTTP网站:将用户的文件存储在本地IIS根目录的子文件夹中,通常是(\Inetpub\Wwwroot\) *FTP网站:将文件存储在远程服务器上,用户可以使用文件传输协议(FTP)通过Internet访问该服务器 3、一个完整的AS.NET页面文档由指令、文档声明类型、代码声明、服务器代码、文本和XHTML标记等部分组成 *指令 ASP.NET页面通常包含一些指令,允许用户指定页面的属性和配置信息,对页面进行设置,当然对于指令指定的设置是不会出现在浏览器端的,它只是指交给浏览器来处理 .aspx文件和.cs文件的相互关联是由aspx文件的@page指令连接的 <%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="true" Inherits="WebApplication1.WebForm1" %> 由<% %>修饰的都是交给服务器处理的部分,该指令说明编程语言是C#,指定包含与页关联的类的已编译文件的名称是WebForm1.aspx.cs,AutoEventWireup 指示控件的事件是否自动匹配 (Autowire),Inherits="WebApplication1.WebForm1"定义供页继承的代码隐藏类。
<!DOCTYPE HTML> DOCTYPE为文档类型声明,指定本文档遵从的DTD标准,同是指定文档中的XHTML版本,可以和哪些验证工具一起使用等信息,文档声明是每个页面文档所必须的
二、页面管理 1、页面代码模式 ASP.NET的页面包含两个部分:一部分是可视化元素,包含标签、服务器控件以及一些静态文本等;另一部分是页面的逻辑,包含事件处理句柄和其他程序代码 ASP.NET提供两种模式来组织页面元素和代码: *单一文件模式:页面的标签和代码在同一个.aspx文件中 *后台代码模式:将可视化元素和程序代码风别放置在不同的文件中,实现代码分离模式 2、页面往返机制 ASP.NET页面作为代码在服务器上运行的,如果要是页面的按钮或者其他内容得到处理,并将该信息提交到服务器。每次页面提交时,都会在服务器端运行其代码,然后 把运行的结果呈现给用户。 (1)用户通过客户端浏览器请求页面,页面第一次运行,执行初步处理 (2)执行的结果以标记的形式呈现给浏览器,浏览器对标记进行解释并显示 (3)用户输入信息,或者选择执行选项,如果是重定向到另一个页面,那么该页面不会被进一步处理 (4)页面发送到Web服务器,在ASP.NET中称为“回发”,也就是说页面发送回其自身 (5)服务器将执行后的页面以HTML或XHTML标记的形式发送到客户端的浏览器 只要用户访问同一个页面,该循环就会继续,有时候需要代码仅在首次请求页面的时候执行,而不是每次回发是都执行,这时候可以使用Page对象的IsPostBack属性来避免对往返行程执行不必要的处理 3、页面生存周期 ASP.NET页面在运行时将经历一个生命周期,在生命周期中,该页面将执行一系列处理步骤。这些步骤包括初始化、实例化控件、还原和维护状态、运行事件处理程序代码以及进行呈现。 浏览器从Web服务请求页面时,浏览器和服务器相连的时间仅够处理请求。Web服务器将页面呈现到浏览器之后,连接即终止。如果浏览器对同一Web服务器发出另一个请求,则即使是对同一个页面发出的,请求仍会作为新请求来处理。 三、常用内置对象
Response对象:Response对象掌管ASP.NET的Input功能,实际是在执行System.Web命名空间中的HttpResponse类,CLR会根据用户的请求信息建立一个Response对象,
Request对象:Request对象接收客户端通过表单或者URL地址串发送来的变量,同时也接收其他客户端环境变量。
ASP.NET是使用表单(Form)来实现用户数据提交的,
Get方法:使用Request.QueryString方法来取得传递的数据,用户要提交的数据信息往往是作为查询字符串加在URL的后面传给接收程序,对大小有限制一般是2KB左右。
Post方法:对数据大小和长度没有什么限制,由于地址栏中不显示相关的查询字符串,那么使用Post方法就十分适合用来传递保密信息,例如用户的账户和密码
Application对象:由于在整个应用程序生存周期中,Application对象都是有效的,所以在不同的页面中都可以对它进行存取,就像使用全局变量一样方便。它可以在多个 Session对象:用于存储特定的信息,Application对象存储的是共享信息,而Session存储的信息是局部的,是随用户的不同而不同的,Session是有生命周期的,默认是20分钟。 <sessionState mode="Inproc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0;Trusted_Connection=yes" cookies="false" timeout="20" /> 1、将其中的代码段“cookieless="false"改为“cookieless=true”客户端就不再使用Cookie存储Session信息,而是将其通过URL存储,在地址栏中就看到了SessionID,设置mode="InProc",这种存储模式就是在服务器端将Session信息存储在IIS进程中,IIS关闭、重启后,这些信息都会丢失,但是这种模式的性能最高,因为所有的Session都存储在IIS的进程中,所以IIS能够很快的访问它们。还有Session可以存储在外存和SQL Server中 Server对象:该对象提供对服务器上的方法和属性的访问, 一个重要的功能就是对字符进行URL和HTML的编码和解码 string str=Server.HtmlEncode("<B>HTML 内容</B>"); str=Server.HtmlDecode(str); Response.Write(str); ViewState对象:视图状态对象,保存往返过程之间的页面信息以及控件值的方法.可存储自定义对象,但是需要序列化该对象。 Cookie对象:存储数据-存储与内存中的临时数据和存储与硬盘中的永久数据,硬盘中的位置是C:\Users\DefaultAppPool\AppData\Roaming\Microsoft\Windows\Cookies,值得一提的是Cookie与网站关联,而不是与特定的页面关联,因此无论用户请求站点中的哪一个页面,浏览器和服务器都将交换Cookie信息,用户访问不同的站点是,各个站点都可能会向用户的浏览器发送一个Cookie,浏览器分别存储所有的Cookie。
|
请发表评论