asp.net通过内置对象来维护有关当前应用程序,每个用户会话,当前http请求,请求的web窗体页等的信息,
主要用于与用户的交互。这些内置对象包括:Request对象,Response对象,Context对象,Application对象,
Session对象,Server对象和Trace对象。
1.Request对象
Request对象代表由客户端程序发往服务器的http请求报文,即由浏览器发送到服务器的所有信息,如Cookie数据,
客户端浏览器类型和功能,MIME内容类型,客户端用GET或POST方法传递的查询字符串等。asp.net允许把这些
数据作为Request对象和集合来处理,可以使用如下形式访问集合中的任意成员:Request.Collection["集合中的项"]。
a.Querystring集合
当html表单使用GET方法向asp.net文件传递数据时,它通过把数据附加在URL字符串后发送到服务器的指定文件中。
在asp.net中,可以通过检索Request对象的QueryString集合获取这些数据,而不用在HTTP GET中分析附加在URL后的字符串。
使用:Request.QueryString["键"]。
b.Form集合
当使用POST方法将HTML表单提交给服务器时,表单元素的值可以使用Request对象的Form集合来检索,与GET方法相比,
POST方法可以将大量数据发送到服务器端。
使用:Request.Form["键"]。
2.Response对象
要想把服务器生成的结果动态的嵌入到web页中,即可以使用服务器控件,也可以使用Request对象的Write方法。
也就是说,Response对象与Request对象刚好相反,它负责把服务器生成的数据返回给客户端,包括直接发送信息
给浏览器,重定向浏览器到另一个URL或设置Cookie的值。asp.net中,可以使用Response.Write("data")或<%=data%>
两种方法返回数据。
Write方法:是一个最常用的方法,它将指定的字符串输出到客户端浏览器,可以输出普通字符串和HTML标记。
Redict方法:使浏览器重定向到另外的URL上,这也是一个经常使用的方法。通过该方法可以使服务器对不同客户
的请求提供不同的页面。
Cookie:是发给客户的一个标识,可以用它来存储有关特定客户端,会话或应用程序的信息,Cookie保存在客户机的硬盘上
或内存中。当浏览器访问同一网页时,会将Cookie中的信息连同请求信息一起发送给服务器。服务器通过提取Cookie的值,
就可以为用户提供个性化服务了。Cookie在System.Net命名空间中被实现为一个类,它包含许多属性。
属性 | 说明 |
Domain | 获取或设置Cookie的一个域(代表该Cookie只呈现给该域) |
Expires | 获取或设置Cookie的过期日期 |
Name | 获取或设置Cookie的名称 |
Path | 获取或设置此Cookie适用的URI,如果未指定此属性,则会将此Cookie发送到源服务器上的所有页 |
Value | 获取或设置Cookie的值 |
3.Server对象
Server对象可以访问服务器上的方法和属性。例如,在服务器上创建和启动控件实例,对HTML和URL进行编码,
把相对或虚拟路径映射到服务器上相应的物理目录上等。
MapPath方法:用于返回与web服务器上的指定虚拟路径相对应的物理路径。
Transfer方法:用于把当前页停止下来,然后按照给定的URL执行另外一个web页。
可以利用它完成与Response对象的Redict方法类似的功能。
4.Application对象
一个web站点可能包含很多asp.net应用对象,而每个asp.net应用程序都是驻留在web站点特定目录下的所有文件,
子目录,页,处理程序,模块和代码的总和,这个特定目录就是web应用程序的根目录。在根目录下的所有文件和
目录就组成了web应用程序。在asp.net中,使用Application对象代表web应用程序的运行实例,它从请求该web应用
程序的第一个页开始,到该web站点关闭时结束。因此,保存在Application中的数据是全局有效的,它特别适宜于在
该web应用程序的所有用户中共享信息,或在该web应用程序的不同用户之间传递信息。Application里面存放的应该
是访问较多,修改较少并且是全局至少大部分功能会使用的数据。
使用:Application["键"]=值 或Application.Add(“键”,"值")
Remove()方法表示移除某个数据。RemoveAll()和clear()表示清除所有数据。
为了保证对Application对象中的变量访问同步,在使用Application变量时使用Lock和UnLock方法。
Application对象的Lock方法可以锁定Application变量,以防止在使用该Application变量时,其他会话改变它的值。
UnLock方法可以解除对Application变量的锁定,以便其他会话可以使用该Application变量。
Lock和UnLock方法应成对使用。
Application对象还有可用于在asp.net应用程序启动和停止时触发的事件。当web服务器启动并允许对asp.net应用程序
所包含的文件进行请求时触发Application_Start事件,当asp.net应用程序终止时,触发Application_End事件,这些事件
处理过程存在于Global.asax文件中,该文件位于asp.net应用程序的根目录中。
当一个新用户访问站点时,Global.asax文件中的Session_Start事件将会引发,可在此使全部用户数和用户数和在线用户增一。
当用户于断开后会引发会引发Session_End事件,可以在此使在线用户减一。
5.Session对象
HTTP协议是一个无状态协议,每次用户对web服务器的请求都会被HTTP处理为一次唯一的用户会话,它不会保存以前用户
请求的任何信息。为了解决这个问题,asp.net提供了一种简单有效的方法,就是利用一个称为Session的对象来存储和处理
属于用户的信息。
Session对象用来存储和处理属于用户的信息。
使用:Session["键"]=值
Remove()方法删除Session对象的某个变量,RemoveAll()和Clear()方法将删除Session的所有数据。
TimeOut属性用来设置Session的过期时间,以分钟为单位。
Abandon方法:取消当前会话。一旦调用了Abandon方法,当前会话就不再有效,所有存储在Session对象中的数据就会被删除。
Session_Start事件:在创建新会话时发生。该事件是设置会话期变量的最佳时机,因为在访问任何页之前都会先设置它们。
Session_OnEnd事件:在会话超时或调用Session对象的Abandon方法后发生,即会话结束时发生。
可以