ASP.NET提供了大量的对象类库,在这些类库中包含了许多封装好的内置对象,我们只需要直接使用这些对象的方法和属性,就能简单快速地完成很多的功能。Request对象、Response对象和Serve对象主要用来连接服务器和客户端浏览器之间的联系。Cookie对象、Session对象和Application对象则主要用于网站状态管理。
(1)Response对象
Response对象可以动态的响应客户端的需求,并将动态生成的响应结果返回给客户端浏览器。Respose对象可以实现很多功能,如向客户端输出数据、跳转网页等。
Response对象的常用方法 :
1.BinaryWrite:将一个二进制字符串写入HTTP输出流。
2.Clear:清除缓冲区流中的所有内容输出。
3.Close:关闭到客户端的套接字连接。
4.End:将当前所有缓冲的输出发送到客户端,停止该页的执行,并引发 Application_EndRequest 事件。
5.Flush:向客户端发送当前所有缓冲的输出。
6.Redirect:将客户端重定向到新的 URL。Write将信息写入 HTTP 输出内容流。
7.Write:将信息写入HTTP输出内容流。
8.WriteFile将指定的文件直接写入HTTP内容输出流。
(2)Request 对象
Request 对象是System.Web.HttpRequest类的实例。当用户在客户端使用Web浏览器向Web应用程序发出请求时,就会将客户端的信息发送到Web服务器。Web服务器就接收到一个HTTP请求,它包含了所有查询字符串参数或表单参数、Cookie数据以及浏览器的信息。在ASP.NET中运行时把这些客户端的请求信息封装成Request对象。
Request对象的常用方法 :
1.BinaryRead:执行对当前输入流进行指定字节数的二进制读取。
2.MapImageCoordinates:将传入图像字段窗体参数影射为适当的x/y坐标值。
3.MapPath:为当前请求将请求的URL中的虚拟路径映射到服务器上的物理路径。
4.SaveAs:将HTTP请求保存到磁盘。
5.ValidateInput:验证由客户端浏览器提交的数据,如果存在具有潜在危险的数据,则引发一个异常。
(3)Server对象
Server对象是System.Web.HttpServerUtility类的实例,它包含了一些与服务器相关的信息。使用它可以获得有关最新的错误信息、对HTML文本进行编码和解码、访问和读写服务器端的文件等功能。
Server对象的属性 :
1.MachineName:获取服务器的计算机名称。
2.ScriptTimeout:获取或设置请求超时值(以秒计)。
(4)Session对象
Session对象实际上操作System.Web命名空间中的HttpSessionState类 。
Session对象可以为每个用户的会话存储信息。
Session对象中的信息只能被用户自己使用,而不能被网站的其他用户访问,因此可以在不同的页面间共享数据,但是不能在用户间共享数据。利用Session进行状态管理是一个ASP.NET的显著特点。它允许程序员把任何类型的数据存储在服务器上。
SessionID是传播于网络服务器和客户端之间的唯一的一个标识信息。当客户端出示它的SessionID,ASP.NET找到相应的Session,从状态服务器里获得相应的序列化数据信息,从而激活该Session,并把它放到一个可以被程序所访问的集合里。
为了系统能够正常工作,客户端必须为每个请求保存相应的SessionID,获取某个请求的SessionID的方式有两种:
1)使用Cookies。在这种情况下,当Session集合被使用时,SessionID被ASP.NET自动转化为一个特定的Cookie(被命名为ASP.NET_SessionID)。
2)使用改装的URL。在这种情况下,SessionID被转化一个特定的改装的URL。ASP.NET的这个新特性可以让程序员在客户端禁用Cookies时创建Session。
ASP.NET对于Session内容的存储也提供了多种的模式:
1)InProc(默认):Session存储在IIS进程中(Web服务器内存)。InProc拥有最好的性能,但牺牲了健壮性和伸缩性。
2)StateServe:Session存储在独立的Windows服务进程asp.net_state.exe中(可以不是Web服务器)。
3)SqlServer:Session存储在SqlServer数据库的表中,可以用aspnet_regsql.exe配置它(SqlServer服务器)。
(5)Cookie对象
Cookie对象为Web应用程序保存用户相关信息提供了一种有效的方法。当用户访问某个的站点时,该站点可以利用Cookie保存用户首选项或其他信息,这样当用户下次再访问该的站点时,应用程序就可以检索以前保存的信息。
当用户第一次访问某个站点时,Web应用程序发送给该用户一个页面和一个包含日期和时间的Cookie。用户的浏览器在获得页面的同时还得到了这个Cookie,并且将它保存在用户硬盘上的某个文件夹中。以后如果该用户再次访问这个站点上的页面,浏览器就会在本地硬盘上查找与该网站相关联的Cookie。如果Cookie存在,浏览器就将它与页面请求一起发送到网站,Web应用程序就能确定该用户上一次访问站点的日期和时间。
Cookie中保存的信息片断以“键/值”对的形式储存,一个“键/值”对仅仅是一条命名的数据。一个网站只能取得它放在用户电脑中的信息,它无法从其他的Cookies文件中取得别的信息,也无法得到用户电脑上的其他任何东西。
使用Cookies的优点可以归纳如下几点:
1.可配置到期规则。Cookies可以在浏览器会话结束时到期,或者可以在客户端计算机上无限期存在。
2.不需要任何服务器资源。Cookies存储在客户端并在发送后由服务器读取。
3.简单性。Cookies是一种基于文本的轻量结构,包含简单的键值对。
4.数据持久性。Cookies通常是客户端上持续时间最长的数据保留形式。
Cookies对象的属性:
1.Domain:获取或设置将此Cookies与其关联的域。
2.Expires:获取或设置此Cookie的过期日期和时间。
3.Name:获取或设置Cookies的名称。
4.Path:获取或设置输出流的HTTP字符集。
5.Secure:获取或设置一个值,该值指示是否通过SSL(即仅通过HTTPS)传输Cookie。
6.Value:获取或设置单个Cookies值。
7.Values:获取在单个Cookies对象中包含的键值对的集合。
Cookies对象的方法 :
1.Add:添加一个Cookies变量。
2.Clear:清除Cookies集合中的变量。
3.Get:通过索引或变量名得到Cookies变量值。
4.GetKey:以索引值获取Cookies变量名称。
5.Remove:通过Cookies变量名称来删除Cookies变量。
对象Request和Response都提供了一个Cookies集合。可以利用Response对象设置Cookies的信息,而使用Request对象获取Cookies的信息。
删除Cookie是修改Cookie的一种形式。由于Cookie位于用户的计算机中,所以无法直接将其删除。但可以让浏览器来删除Cookie。将其有效期设置为过去的某个日期,就会删除这个已过期Cookie。删除一个Cookie就是利用一个过期的Cookie来代替它。
(6)Application对象
Application对象是System.Web命名空间中的HttpApplicationState类的实例。
Application对象为经常使用的信息提供了一个有用的Web站点存储位置,Application中的信息可以被网站的所有页面访问,因此可以在不同的用户间共享数据。
Application的原理是在服务器端建立一个状态变量,来存储所需的信息。要注意的是,首先,这个状态变量是建立在内存中的,其次是这个状态变量是可以被网站的所有页面访问的。
Application对象具有的特点:
1.数据可以在Application对象内部共享。
2.一个Application对象包含的事件,可以触发某些Applicatin对象脚本。
3.个别Application对象可以用Internet Service Manager来设置而获得不同属性。
4.单独的Application对象可以隔离出来,在它们自己的内存中运行.
5.可以停止一个Application对象而不会影响到其他应用程序。
6.一个网站可以有不止一个Application对象。
7.Application对象成员在服务器运行期间持久地保存数据。其生命周期终止于关闭IIS或使用Clear方法清除。
8.因为多个用户可以共享一个Application对象,所以必须要有Lock和Unlock方法,以确保多个用户无法同时改变某一属性。
Application对象的属性 :
1.AllKeys:获取HttpApplicationState集合中的访问键。
2.Count:获取HttpApplicationState集合中的对象数。
(7)ViewState对象
ViewState是一种机制,ASP.NET使用这种机制来跟踪服务器控件状态值,否则这些值就不作为HTTP窗体的一部分而回传。
ViewState是由ASP.NET框架管理的一个隐藏的窗体字段。当ASP.NET执行某个页面时,该页面上的ViewState值和所有控件将被收集并格式化成一个编码字符串,然后被分配给隐藏窗体字段的值属性。由于隐藏窗体字段是发送到客户端的页面的一部分,所以ViewState值被临时存储在客户端的浏览器中。如果客户端选择将该页面会传给服务器,则ViewState字符串也将被会传。
ViewState提供了一个ViewState集合属性。该集合属性是集合类的一个实例,集合类是一个键值集合,程序员可以通过键来为ViewState增加或者去除项。