二、Request对象
1.Request对象的属性
① QueryString
说明:获取 HTTP 查询字符串变量集合
属性值:NameValueCollection对象
② Path
说明:获取当前请求的虚拟路径
属性值:当前请求的虚拟路径
③ UserHostAddress
说明:获取远程客户端的 IP 主机地址
属性值:远程客户端的IP地址
④ Browser
说明:获取有关正在请求的客户端的浏览器功能的信息
属性值:HttpBrowserCapabilities对象
2.Request对象的方法
① BinaryRead
说明:执行对当前输入流进行指定字节数的二进制读取
②MapPath
说明:为当前请求将请求的URL中的虚拟路径映射到服务器上的物理路径
三、Application对象
Application对象是HttpApplicationState类的一个实例。
HttpApplicationState类的单个实例,将在客户端第一次从某个特定的ASP.NET应用程序虚拟目录中请求任何URL资源时创建。对于Web服务器上的每个ASP.NET应用程序,都要创建一个单独的实例。然后通过内部Application对象公开对每个实例的引用。Application对象使给定应用程序的所有用户之间共享信息,并且在服务器运行期间持久地保存数据。因为多个用户可以共享一个Application对象,所以必须要有Lock和Unlock方法,以确保多个用户无法同时改变某一属性。Application对象成员的生命周期止于关闭IIS或使用Clear方法清除。
1.Application对象的属性
① AllKeys
说明:获取HttpApplicationState集合中的访问键
属性值:HttpApplicationState对象名的字符串数组
② Count
说明:获取HttpApplicationState集合中的对象数
属性值:集合中的Item对象数。默认为0
2.Application对象的方法
① Add
说明:新增一个新的Application对象变量
② Clear
说明:清除全部的Application对象变量
③ Get
说明:使用索引关键字或变数名称得到变量值
④ GetKey
说明:使用索引关键字來获取变量名称
⑤ Lock
说明:锁定全部的Application变量
⑥ Remove/RemoveAll
说明:使用变量名称删除一个Application对象/删除全部的Application对象变量
⑦ Set
说明:使用变量名更新一个Application对象变量的內容
⑧ UnLock
说明:解除锁定的Application变量
四、Session对象
Session对象是HttpSessionState的一个实例。该类为当前用户会话提供信息,还提供对可用于存储信息的会话范围的缓存的访问,以及控制如何管理会话的方法。
Session的出现填补了HTTP协议的局限。HTTP协议工作过程是,用户发出请求,服务器端做出响应,这种用户端和服务器端之间的联系都是离散的,非连续的。在HTTP协议中没有什么能够允许服务器端来跟踪用户请求的。在服务器端完成响应用户的请求后,服务器端不能持续与该浏览器保持连接。从网站的观点上看,每一个新的请求都是单独存在的,因此,当用户在多个主页间转换时,就根本无法知道他的身份。
使用Session对象存储特定用户会话所需的信息。这样,当用户在应用程序的Web页之间跳转时,存储在Session对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。
当用户请求来自应用程序的Web页时,如果该用户还没有会话,则Web服务器将自动创建一个Session对象。当会话过期或被放弃后,服务器将中止该会话。
当用户第一次请求给定的应用程序中的aspx文件时,ASP.NET将生成一个SessionID。SessionID是由一个复杂算法生成的号码,它唯一标识每个用户会话。在新会话开始时,服务器将Session ID作为一个cookie存储在用户的Web浏览器中。
在将SessionID cookie存储于用户的浏览器之后,即使用户请求了另一个.aspx文件,或请求了运行在另一个应用程序中的.aspx文件,ASP.NET仍会重用该cookie跟踪会话。与此相似,如果用户故意放弃会话或让会话超时,然后再请求另一个.aspx文件,那么ASP.NET将以同一个cookie开始新的会话。只有当服务器管理员重新启动服务器,或用户重新启动Web浏览器时,此时存储在内存中的SessionID设置才被清除,用户将会获得新的SessionID cookie。
通过重用SessionID cookie,Web应用程序将发送给用户浏览器的cookie数量降为最低。另外,如果用户决定该Web应用程序不需要会话管理,就可以不让Web应用程序跟踪会话和向用户发送SessionID。
Session对象最常见的一个用法就是存储用户的首选项。例如,如果用户指明不喜欢查看图形,另外其还经常被用在鉴别客户身份的程序中。要注意的是,会话状态仅在支持cookie的浏览器中保留,如果客户关闭了cookies选项,Session也就不能发挥作用了。
ASP.NET的Sessions非常好用,能够利用Session对象来对Session全面控制,如果需要在一个用户的Session中存储信息,只需要简单地直接调用Session对象就可以了,下面就是个例子:
Session["Myname"]=Response.form("Username");
Session["Mycompany"]=Response.form("Usercompany");
应注意的是,Session对象是与特定用户相联系的。针对某一个用户赋值的Session对象是和其他用户的Session对象完全独立的,不会相互影响。换句话说,这里面针对每一个用户保存的信息是每一个用户自己独享的,不会产生共享情况。