Chap 10 Notes
--------------------------
1、 .NET Framework主体就是一个对象类库。.NET可以把所有的事物,包括内部变量和功能全面的应用程序,都显式地定义为对象
2、 名称空间:.NET Framework提供的用来组织所有类的简洁的命名模式。名称空间是一组类似的类
3、 名称空间是按照层次安排的,其根是System,System包含定义基本代码块的所有类
4、 作为一个规则,树形结构最上面的类是最基本的,越向下,类的专用性就越强
5、 例如,引用处理文件的类File,可用如下方式:System.IO.File,其中System.IO是名称空间
6、 还可以使用using引用名称空间,如using System.IO,然后在使用的时候直接引用File类,如File.Open(),而无需在它前面显式地加上名称空间
7、 请求一个起到重定向作用的ASP.NET页面的处理过程:
(1) 在浏览器第一次调用ASP.NET页面时,Web服务器端IIS将识别出这是一个ASPX文件请求,并让ASP.NET模块(aspnet_isapi.dll)处理它
(2) aspnet_isapi.dll把请求的ASPX文件放在ASP类当中,所以文件mypage.aspx的内容最终放在类ASP.mypage_aspx中
(3) ASP类继承自Page类,Page类在System.Web.UI名称空间中定义
(4) 在CLR上把ASP类实例化为一个对象,在新对象上调用一个Redirect()方法(详见下面解释)
(5) 通过aspnet_isapi.dll返回合适的HTML(新页面),IIS再把HTML返回给发出请求的浏览器
8、 整个访问应答过程图
HTML显示
实例化
继承自
9、 页面重定向代码示例:Chap10/ rm323_navigator.aspx
10、 在这段代码中应注意:
(1) Page类潜藏在每个ASP.NET页面上
(2) ASP类继承自Page类,这意味着ASP.NET页面可以访问Page类提供的很多有效功能
(3) 完整的类结构是System.Web.UI.Page.ASP.Mypage_aspx
(4) 现在相当于在派生类Mypage_aspx的实例上使用基类Page的属性(Response等),根据P301的理论,在派生类定义中若调用基类的方法或访问基类的属性,仅需直接写出方法或属性名称即可!在这里直接访问Page类的Response等属性,这个属性返回一个HttpResponse类型的对象,调用该对象的Redirect()方法即可
11、 Request对象——允许访问“请求网页的人或过程”的信息
12、 抓取用户浏览器版本:Request.Browser.MajorVersion
13、 Response对象——提供了一种准确控制把响应发送回发出请求的人的方式
14、 Server对象
15、 状态管理是一种允许Web服务器对用户是谁,用户已经在网站的什么地方,用户正在做什么等做出决定的技术
16、 Application对象——可以在启动网站时配置application状态,这就需要使用Global.asax文件了。此文件包含为响应某些事件而执行的代码,用于在启动网站时配置状态
17、 Global.asax文件必须在Web应用程序的根文件夹下。在Web应用程序启动时,ASP.NET会查找Global.asax文件,找到后,就查找一个函数Application_OnStart()。如果有这个函数,就执行其中的代码
18、 在修改ASP.NET页面中的application状态时,应使用Applition对象的Lock()和Unlock()方法,这确保了不会同时有两个页面修改Applition对象的某个值
19、 使用session的代码示例:Chap10/rm349_session.aspx
20、 在这段代码中应注意:
(1) 注意代码中的装箱过程
(2) 注意session值的显示方式
21、 使用Cookie的代码示例:Chap10/rm353_cookie1.aspx和Chap10/rm353_cookie2.aspx