ASP.NET的Web应用程序
本章学习目标
□ ASP.NET应用程序基础
□ Global.asax文件的使用
□ Application对象的状态管理
□ Session对象的状态管理
□ Application与Session 对象的使用
□ 在网页间传递Web窗体内容
□ 使用 web.config配置文件
□ ASP.NET 2.0的网站设定工具
11.1 ASP.NET应用程序基础
ASP.NET应用程序(Application)是指使用ASP.NET技术建立的Web应该程序,这是由网页文件组成,可以完成特定工作的应用程序。
事实上,当在支持ASP.NET的Web服务器上建立虚拟目录后,就是在此目录中创建ASP.NET的Web应用程序。
11.1.1 ASP.NET的Web应用程序基础
ASP.NET 应用程序是一种 .NET Framework应用程序,它是在Web服务器上执行的应用程序,称为Web应用程序。每一个ASP.NET应用程序有很多 HttpApplication类对象,其中的一个HttpApplication对象负责处理应用程序的 HTTP请求。
在IIS的Web服务器中能够将整个网站、或指定网站目录建立成Web应用程序。IIS能够在同一个网站建立多个Web应用程序,每一个虚拟目录都可以建立成为Web应用程序。在IIS中建立Web应用程序的方法如下所示。
● 在IIS新建网站时,主目录默认是一个Web应用程序。
● 网站虚拟目录(Virtual Directories):当目录建成虚拟目录或 Web 共享时,如果目录具有“脚本”权限,它就是一个 Web 应用程序,详细步骤参阅第 1.5.4 节内容。
● 主目录下实际路径的子目录:默认与上一层主目录属于同一个 Web 应用程序。
在 IIS 的“Internet信息服务”控制台窗口中,可以看到本地计算机“默认网站”下添加的虚拟目录结构,如图11-1所示。

图11-1 添加虚拟目录结构
上述Ch02~Ch11虚拟目录是不同Web应用程序的根目录(Application Root),也称为Web应用程序的启动点目录。例如Ch11是“<默认网站>\Ch11”,在此启动目录下的子目录或程序文件是ASP.NET的Web应用程序。
11.1.2 网页间数据共享的基础
网页间的数据共享是 Web 应用程序能够正确执行的关键,因为 HTTP 通信协议并不会保留客户端的用户状态,用户可以通过网页间数据共享来保留用户信息,以便正确地执行 Web 应用程序。
1. Session 时间
ASP.NET的“Session 时间”是指Web应用程序从一个ASP.NET网页跳转到其他ASP.NET网页过程中所花费的时间,并不是指第11.4节的Session对象。
在ASP.NET中使用System.Web.SessionState名称空间的类来管理Session时间的信息,也就是建立Session对象来保留Session时间的数据。
2. 网站的数据共享
当用户进入网站,如果是会员管理网站,在登录后可以获取用户的浏览权限,但是服务器端并不知道目前客户端有哪些用户正在浏览,和其使用状态。因为用户在移至其他网页时,用户登录数据并不会自动传给下一个网页。
不仅如此,如果 Web 网站同时有多位用户登录,就需要考虑网站的数据共享,主要分为两种,如下所示。
● 共享给网站所有用户:在 ASP.NET 程序中可以使用 Application 变量进行共享,例如目前在线的用户数。
● 每位用户的专用数据:在 ASP.NET 程序中可以使用 Session 变量进行共享,例如登录用户的权限。
虽然ASP.NET程序声明的变量并无法跨越不同ASP.NET程序,但是服务器端Application和Session对象建立的变量,就可以让不同ASP.NET程序进行共享数据。
其目的主要是为了让用户在浏览网站的过程中,可以保留数据以便其他 ASP.NET 程序能够正常的执行。ASP.NET 2.0提供了Profile对象来共享数据,详细说明参阅第14章。
11.1.3 网页间的数据传递方法
在ASP.NET程序间的数据传递方法换个角度来说,就是如何保留用户状态的方法,称为“状态管理”(State Management)。按数据存储的位置分为客户端和服务器端两大类。
1. 客户端的状态管理
客户端的状态管理是将数据存储在用户计算机,或是直接存储在ASP.NET程序建立的网页中,如表11-1所示。
表11-1 客户端的状态管理
|
状态管理方法 |
说 明 |
|
Cookies |
Cookies 是保留在用户计算机的小文件,文件内容是一些用户信息 |
|
ViewState |
ASP.NET 的 ViewState 功能,在窗体回发时能够在网页中使用 ViewState 属性保留用户数据 |
|
隐藏字段 |
使用窗体隐藏字段回发窗体数据或传递数据到其他网页 |
|
QueryString 集合对象 |
使用网址 URL 参数,即在 URL 网址加上参数,将数据传递给其他网页 |
2. 服务器端的状态管理
服务器端的状态管理是将数据存储在服务器计算机上,换句话说,它会占用 Web 服务器的系统资源,如表11-2所示。
表11-2 服务器端的状态管理
|
状态管理方法 |
说 明 |
|
Application 对象 |
使用 Application 对象的变量存储用户信息 |
|
Session 对象 |
使用 Session 对象的变量存储用户信息 |
|
数据库 |
使用数据库的记录存储用户信息 |
|
XML 文件或文本文件 |
使用 XML 文件或文本文件存储用户信息 |
|
Profile 对象 |
使用 HttpModules 类的 Profile 对象存储用户信息,这是 ASP.NET 2.0 的新功能,详细说明参阅第 14 章 |
在本章主要是介绍Application 和 Session 对象的状态管理方法。







