【asp源码栏目提醒】:以下是网学会员为您推荐的asp源码-第四节 ASP NET常用对象 - 编程语言,希望本篇文章对您学习有所帮助。
基于.Net的Web应用程序设计Lesson 4
ASP.NET常用对象天津城市建设学院2010年3月31日4.1
ASP.NET页面
ASP.NET页面最终会编译为.dll动态链接库文件。
当用户第一次浏览到.aspx网页时
ASP.NET自动生成表示该网页的.NET类文件然后编译此文件成本机代码。
.dll文件在服务器上运行并动态的生成网页的HTML输出。
下次用户再次请求同一页面时服务器将直接调用.dll文件进行相应节省了编译过程。
Lesson 4
ASP.NET常用对象天津城市建设学院2010年3月31日4.2
ASP.NET页面模型
ASP.NET网页中页面通常分为两部分可视组件和逻辑。
可视组件可是元素有一个包含静态标记通常指HTML的窗体元素以及
ASP.NET提供的一个被称之为“Web服务器控件”的控件集合该集合类似于HTML窗体元素但是要较之丰富可以视为其扩展。
的文件组成一般扩展名为.aspx。
开发人员作要做的主要工作是将可视元素合理的放置在页面内的相应位置。
Lesson 4
ASP.NET常用对象天津城市建设学院2010年3月31日4.2
ASP.NET页面模型逻辑有代码组成用来与网页进行交互包括时间处理程序和其他代码等。
按照代码的位置不同可以将
ASP.NET页面分为以下几个类型·单文件模型· 代码隐藏模型此外还可以通过嵌入式代码块降代码直接嵌入到页面中Lesson 4
ASP.NET常用对象天津城市建设学院2010年3月31日4.2
ASP.NET页面模型·单文件模型范例1SingleFileMode如果代码驻留在.aspx页面的Script块中就和可视组件共享一个文件这种方式叫做“单文件模型”。
注意编程代码位于Script块中该块要包含runat“server”属性该属性将其标记为
ASP.NET应执行的代码。
Lesson 4
ASP.NET常用对象天津城市建设学院2010年3月31日4.2
ASP.NET页面模型·单文件模型通常单文件模型适用于特定的页在这些页中代码主要由页中控件的事件处理程序组成。
单文件页模型的优点包括以下几点在没有太多代码的页中可以方便地将代码和标记保留在同一个文件中这一点比代码隐藏模型的其他优点都重要。
例如由于可以在一个地方看到代码和标记因此研究单文件页更容易。
因为只有一个文件所以使用单文件模型编写的页更容易部署或发送给其他程序员。
由于文件之间没有相关性因此更容易对单文件页进行重命名。
因为页自包含于单个文件中故而在源代码管理系统中管理文件稍微简单一些。
Lesson 4
ASP.NET常用对象天津城市建设学院2010年3月31日4.2
ASP.NET页面模型· 代码隐藏模型范例2CodeBehindModel如果代码在单独的类文件中则该文件称为“代码隐藏”文件这种模型称为“代码隐藏模型”实际上代码隐藏模式相当于把Script部分已到了aspx.cs文件中去了而这两部分是通过Page指令的CodeFile属性和Inherits属性连接起来实现的。
类是使用partial关键字进行声明的这表明类并不是整个包含于一个文件中。
在网页运行时编译器将读取.aspx页面以及它在Page指令中引用的文件将它们汇编成单个的类然后将它们作为一个单元编译成单个类。
Lesson 4
ASP.NET常用对象天津城市建设学院2010年3月31日4.2
ASP.NET页面模型· 代码隐藏模型代码隐藏页的优点代码隐藏页的优点使它们适用于包含大量代码或多个开发人员共同创建网站的Web 应用程序。
代码隐藏模型的优点包括以下几点代码隐藏页可以清楚地分隔标记用户界面和代码。
这一点很实用可以在程序员编写代码的同时让设计人员处理标记。
代码并不会向仅使用页标记的页设计人员或其他人员公开。
代码可在多个页中重用Lesson 4
ASP.NET常用对象天津城市建设学院2010年3月31日4.2
ASP.NET页面模型·单文件模型· 代码隐藏模型此外还可以通过嵌入式代码块降代码直接嵌入到页面中Lesson 4
ASP.NET常用对象天津城市建设学院2010年3月31日4.2
ASP.NET页面模型·通过嵌入式代码块的形式实现内嵌于页内通过嵌入式代码块将代码直接嵌入到页面中块中的代码是可以执行编程语句并调用当前页面类中的成员。
代码块以结束。
范例3EmbedCodeLesson 4
ASP.NET常用对象天津城市建设学院2010年3月31日4.2
ASP.NET页面模型·通过嵌入式代码块的形式实现内嵌于页内嵌入式代码块可以用在下列情况中1将控件元素或标记元素的值设置为函数返回的值。
2将计算直接嵌入到标记或空间属性中。
建议尽量减少使用。
Lesson 4
ASP.NET常用对象天津城市建设学院2010年3月31日4.3
ASP.NET页面回发
ASP.NET页面作为代码在服务器端执行因此要想得到处理页面必须配置为如当用户点击按钮时提交到服务器每次页面都会提交回自身以便能再次运行代码然后向用户呈现其自身的新版本。
注意由于Web具有断开连接的天性所以浏览器发出请求页面时浏览器和服务器相连的时间仅够处理请求将结果发送回浏览器的即一次请求与应答这就决定了用户请求
ASP.NET时每一次都将创建该页的新实例。
Lesson 4
ASP.NET常用对象天津城市建设学院2010年3月31日4.3
ASP.NET页面回发
ASP.NET页面回发机制1用户请求页面使用HTTP GET方法请求页面页面第一次运行执行初步处理。
2页面将标记动态呈现到浏览器用户看到的网页类似于其他任何网页。
3用户信息的加入输入信息或从可用选项中进行选择如果用户仅仅是单击了一个链接而不是按钮则页面仅仅定位到另一页4页面发送到服务器浏览器的HTTP POST方法该方法在
ASP.NET中称为回发注意发回的是其自身。
5再次在Web服务器上运行该页面并在页面上使用用户信息。
6页面执行编程所实行的操作。
7页面将其自身呈现回浏览器附带结果。
Lesson 4
ASP.NET常用对象天津城市建设学院2010年3月31日4.4
ASP.NET页面生命周期
ASP.NET 页运行时此页将经历一个生命周期在生命周期中将执行一系列处理步骤。
这些步骤包括初始化、实例化控件、还原和维护状态、运行事件处理程序代码以及进行呈现。
了解页的生命周期非常重要这样就能在合适的生命周期阶段编写代码以达到预期效果。
此外如果开发自定义控件则必须熟悉页生命周期从而正确地初始化控件使用视图状态数据填充控件属性以及运行所有控件行为逻辑。
控件的生命周期基于页的生命周期但是页引发的控件事件比单独的
ASP.NET 页中可用的事件多。
引自MSDNLesson 4
ASP.NET常用对象天津城市建设学院2010年3月31日4.4
ASP.NET页面生命周期阶段说明页请求页请求发生在页生命周期开始之前。
用户请求页时
ASP.NET 将确定是否需要分析和编译页从而开始页的生命周期或者是否可以在不运行页的情况下发送页的缓存版本以进行响应。
开始在开始阶段将设置页属性如Request 和Response。
在此阶段页还将确定请求是回发请求还是新请求并设置IsPostBack 属性。
此外在开始阶段期间还将设置页的UICulture 属性。
页初始化页初始化期间可以使用页中的控件并将设置每个控件的UniqueID 属性。
此外任何主题都将应用于页。
如果当前请求是回发请求则回发数据尚未加载并且控件属性值尚未还原为视图状态中的值。
加载加载期间如果当前请求是回发请求则将使用从视图状态和控件状态恢复的信息加载控件属性。
验证在验证期间将调用所有验证程序控件的Validate 方法此方法将设置各个验证程序控件和页的IsValid 属性。
回发事件处理如果请求是回发请求则将调用所有事件处理程序。
呈现在呈现期间视图状态将被保存到页然后页将调用每个控件以将其呈现的输出提供给页的Response 属性的OutputStream。
卸载完全呈现页、将页发送至客户端并准备丢弃时将调用卸载。
此时将卸载页属性如Response 和Request并执行清理。
引自MSDNLesson 4
ASP.NET常用对象天津城市建设学院2010年3月31日4.4
ASP.NET页面生命周期引自MSDN生命周期事件在页生命周期的每个阶段中页将引发可运行您自己的代码进行处理的事件。
对于控件事件通过以声明方式使用属性如onclick或以使用代码的方式均可将事件处理程序绑定到事件。
页还支持自动事件连接即
ASP.NET 将寻找具有特定名称的方法并在引发特定事件时自动运行这些方法。
如果 Page 指令的AutoEventWireup 属性设置为true或者如果未定义该属性因为默认情况下为true页事件将自动绑定至使用Page_event 命名约定的方法如Page_Load 和Page_Init。
下页表中列出了最常用的页生命周期事件。
实际的事件比列出的事件要多的多。
但是它们不用于大多数页处理方案。
而是主要由
ASP.NET 网页上的服务器控件使用以初始化和呈现它们本身。
如果要编写自己的
ASP.NET 服务器控件则需要详细了解这些阶段。
Lesson 4
ASP.NET常用对象天津城市建设学院2010年3月31日4.4
ASP.NET页面生命周期引自MSDN??使用IsPostBack 属性确定是否是第次处理该页。
??创建或重新创建动态控件。
??动态设置主控页。
??动态设置Theme 属性。
??读取或设置配置文件属性值。
页事件典型使用Page_PreInit Page_Init ??读取或初始化控件属性。
Page_Load ??读取和更新控件属性。
Control events 执行特定于应用程序的处理??如果页包含验证程序控件请在执行任何处理之前检查页和各个验证控件的IsValid 属性。
??处理特定事件如Button 控件的Click 事件。
Page_PreRender 对页的内容进行最后更改。
Page_Unload 执行最后的清理工作可能包括关闭打开的文件和数据库连接。
完成日志记录或其他特定于请求的任务。
注意如果请求是回发请求则控件的值尚未从视图状态还原。
如果在此阶段设置控件属性则其值可能会在下一阶段被改写。
注意在卸载阶段页及其控件已被呈现因此无法对响应流做进一步更改。
如果尝试调用方法如Response.Write 方法则该页将引发异常。
Lesson 4
ASP.NET常用对象天津城市建设学院2010年3月31日4.4
ASP.NET页面生命周期生命周期事件执行顺序详细说明1、Page_PreInit事件2、Page_Init事件3、Page_InitComplete事件4、Page_PreLoad事件5、Page_Load事件6、控件事件7、Page_PreRender事件8、Page_Unload事件Lesson 4
ASP.NET常用对象天津城市建设学院2010年3月31日4.5 Request对象System.Web.HttpRequest当用户通过浏览器提交请求时比如用户在浏览器表单中输入用户名和密码然后请求登陆系统HTTP会将相关信息封装到数据包中并发送到服务器端。
如果服务器是
ASP.NET网站则可以通过Request对象来获取用户输入。
特别需要指出的是获取的要比用户名和密码两个信息多很多。
每一次客户端请求服务器都会新创建一个Request对象。
Lesson 4
ASP.NET常用对象天津城市建设学院2010年3月31日4.5 Request对象System.Web.HttpRequestRequest对象是HttpRequest类的一个实例Request对象主要的功能从客户端接收信息这些信息包括通过URL参数传递的信息HTML表单中用post或get方法提交的参数和cookie以及客户端的IP、浏览器的版本等Lesson 4
ASP.NET常用对象天津城市建设学院2010年3月31日4.5 Request对象Lesson 4
ASP.NET常用对象天津城市建设学院2010年3月31日4.5 Request对象Request对象的常用方法如表所列Lesson 4
ASP.NET常用对象天津城市建设学院2010年3月31日4.6 Server对象Server对象是HttpServerUtility的一个实例。
该对象提供对服务器上的方法和属性的访问。
Lesson 4
ASP.NET常用对象天津城市建设学院2010年3月31日4.6 Server对象在网站“PageObject”中新建“Server.aspx”页面在Server.aspx.cs中的Page_Load事件中添加如下代码Lesson 4
ASP.NET常用对象天津城市建设学院2010年3月31日4.7 Response对象Response对象可以动态地响应客户端的请求并将动态生成的响应结果返回给客户端浏览器。
Response对象可以实现很多功能例如向客户端输出数据跳转网页等。
Response对象是HttpResponse类的一个实例。
该类主要是封装来自
ASP.NET操作的HTTP响应信息。
Response对象的Cookies属性为HttpCookie对象其常用属性如下所示Lesson 4
ASP.NET常用对象天津城市建设学院2010年3月31日4.7 Response对象Lesson 4
ASP.NET常用对象天津城市建设学院2010年3月31日4.7 Response对象Lesson 4
ASP.NET常用对象天津城市建设学院2010年3月31日4.7 Response对象Response对象提供了一系列方法可以实现输出信息到客户端包括直接发送信息给浏览器、重定向浏览器到另一个URL或设置cookie的值等等。
Lesson 4
ASP.NET常用对象天津城市建设学院2010年3月31日4.8 Application对象Application对象是HttpApplicationState类的一个实例定义
ASP.NET应用程序中的所有应用程序对象通用的方法、属性和事件。
HttpApplicationState类是由用户在global.asax文件中定义的应用程序的基类。
此类的实例Application对象是在
ASP.NET基础结构中创建的而不是由用户直接创建的。
一个实例在其生存期内被用于处理多个请求但它一次只能处理一个请求。
这样成员变量才可用于存储针对每个请求的数据。
Application的原理是在服务器端建立一个状态变量来存储所需的信息。
要注意的是首先这个状态变量是建立在内存中的其次是这个状态变量是可以被网站的所有页面访问的。
Lesson 4
ASP.NET常用对象天津城市建设学院2010年3月31日4.8 Application对象Application对象的方法如表所示Lesson 4
ASP.NET常用对象天津城市建设学院2010年3月31日4.8 Application对象在网站“PageObject”中添加“Application.aspx”页面在Application.aspx.cs中为Page_Load事件添加如下代码Lesson 4
ASP.NET常用对象天津城市建设学院2010年3月31日4.8 Application对象Application对象的方法如表所示Lesson 4
ASP.NET常用对象天津城市建设学院2010年3月31日4.8Session对象Session对象说明在
ASP.NET中Session对象是HttpSessionState的一个实例。
该类为当前用户会话提供信息还提供对可用于存储信息的会话范围的缓存的访问以及控制如何管理会话的方法。
在
ASP.NET中Session是一个内置对象的该对象是Page类的子类。
SessionID是传播于网络服务器和客户端之间的唯一的一个信息。
当客户端出示它的SessionIDASP.NET找到相应的Session从状态服务器里获得相应的序列化数据信息从而激活该Session并把它放到一个可以被程序所访问的集合里。
整个过程是自动发生的。
Lesson 4
ASP.NET常用对象天津城市建设学院2010年3月31日4.8Session对象Session对象说明为系统能够正常工作客户端必须为每个请求保存相应的SessionID获取某个请求的SessionID的方式有两种1 使用Cookies。
在这种情况下当Session集合被使用时SessionID被
ASP.NET自动转化一个特定的Cookie被命名为
ASP.NET_SessionID。
2 使用改装的URL。
在这种情况下SessionID被转化一个特定的改装的URL。
ASP.NET的这个新特性可以让程序员在客户端禁用Cookies时创建Session。
Lesson 4
ASP.NET常用对象天津城市建设学院2010年3月31日4.8Session对象Session的语法如下Session”变量” 表达式Lesson 4
ASP.NET常用对象天津城市建设学院2010年3月31日4.9Cookie对象Cookie对象在应用时的几个注意事项Cookie对象实际是System.Web命名空间中HttpCookie类的对象。
Cookie对象为Web应用程序保存用户相关信息提供了一种有效的方法。
当用户访问某个的站点时该站点可以利用Cookie保存用户首选项或其他信息这样当用户下次再访问该站点时应用程序就可以检索以前保存的信息。
Lesson 4
ASP.NET常用对象天津城市建设学院2010年3月31日4.9Cookie对象Cookie对象在应用时的几个注意事项Cookie其实是一小段文本信息伴随着用户请求和页面在Web服务器和浏览器之间传递。
用户每次访问站点时Web应用程序都可以读取Cookie包含的信息。
当用户第一次访问某个站点时Web应用程序发送给该用户一个页面和一个包含日期和时间的Cookie。
用户的浏览器在获得页面的同时还得到了这个Cookie并且将它保存在用户硬盘上的某个文件夹中。
以后如果该用户再次访问这个站点上的页面浏览器就会在本地硬盘上查找与该网站相关联的Cookie。
如果Cookie存在浏览器就将它与页面请求一起发送到网站Web应用程序就能确定该用户上一次访问站点的日期和时间。
Lesson 4
ASP.NET常用对象天津城市建设学院2010年3月31日4.9Cookie对象Cookie对象在应用时的几个注意事项1、大多数浏览器支持最多可达4096字节的Cookie所以不能要一个Cookie来保存数据集或其他大量数据。
2、浏览器还限制了站点可以在用户计算机上保存的Cookie数通常每个站点只保存20个来自所有站点的合计300个。
如果超出最先存入的Cookie将被删除。
3、最需要重要的一点用户可以干脆拒绝接受Cookie所以应用程序不应该依赖于Cookie来完成关键功能编程序时最好先测试一下客户端浏览器是否支持Cookie根据测试结果动态的处理。
Lesson 4
ASP.NET常用对象天津城市建设学院2010年3月31日4.9Cookie对象Cookie对象在应用时的几个注意事项4、Cookie是针对站点来说的而不是某个页面。
用户第一次访问站点时应用程序会发送一个Cookie到浏览器再次访问该站点时浏览器会查询是否有Cookie如果有就一同发送至服务器。
5、Cookie因为存在客户端的计算机内无法删除可以通过浏览器进行删除所以要想删除一个Cookie就只能用同一个名字重新生成一个Cookie然后将其置为过去的某个时间因为其已过期浏览器便会自动删除了。
如果想改写也用同一名字的新Cookie对象去覆盖掉保留在客户机上的旧Cookie。
Lesson 4
ASP.NET常用对象天津城市建设学院2010年3月31日4.9Cookie对象Request对象的Cookie集合包含由客户端传输到服务器的Cookie以Cookie标头的形式传输Response对象的Cookie集合包含一些新的Cookie在服务器上创建的并以Set-Cookie标头的形式传到客户端。
Lesson 4
ASP.NET常用对象天津城市建设学院2010年3月31日4.9Cookie对象Cookie对象的属性Lesson 4
ASP.NET常用对象天津城市建设学院2010年3月31日4.9Cookie对象Cookie对象的方法
上一篇:
【精品】ASP显示时间代码
下一篇:
还记得,那年的风车吗?