第6章构建网站6.1ASP.NET网站综述6.2Response对象6.3Request对象6.4Application对象6.5Session对象6.6Server对象6.7构建网站示例通过Request对象可以分别使用QueryString、Form集合获取客户端的表单数据。表单(Form):通过表单提交的方式,使用Post方法。Request.Form[name]Request.Form[email]6.3.1利用Request对象获取客户端表单信息(Request_Form.aspx)6.3Request对象通过Request对象可以分别使用QueryString、Form集合获取客户端的表单数据。查询字符串(QueryString)通过超级链接后面的参数提交方式,使用Get方法。Request.QueryString[name]Request.QueryString[email]Request[name];Request[email];6.3.1利用Request对象获取客户端表单信息6.3Request对象通过Request对象的Browser属性可以获取客户端浏览器的信息。Browser属性实际上是HttpBrowserCapablitities对象,有许多属性。6.3.2利用Request对象获取客户端浏览器信息(Request_Browser.aspx)6.3Request对象通过Request对象的属性还可以获取客户端机器的信息。6.3.4利用Request对象获取客户端机器信息通过Request对象的Headers属性包含了HTTP头部的信息。6.3.5利用Request对象获取HTTP中的信息(Request_HTTP.aspx)6.3Request对象Application对象在某个应用程序的所有用户之间共享信息,并在服务器运行期间持久地保存数据。可以将Application对象看成是应用程序全局变量的集合,所以在不同的页面中都可以对它进行存取。由于Application对象存储在服务器内存中,因此每当停止或重新启动应用程序时,Application对象都将丢失。利用Application特性,可以创建聊天室和网站计数器等常用网页应用程序。6.4.1Application对象的属性和方法6.4Application对象6.4Application对象6.4.1Application对象的属性和方法Application对象是HttpApplicationState类的一个实例。Application对象在第一次有客户端请求本应用程序的任何URL时创建。Application对象的属性Count:获取Application对象变量的数量。Item:允许通过名称或数字索引访问对象。6.4.1Application对象的属性和方法Application对象是HttpApplicationState类的一个实例。Application对象在第一次有客户端请求本应用程序的任何URL时创建。Application对象的方法Add():添加一个名称为name,值为value的对象。Lock():锁定所有的Application对象变量;UnLock():解除锁定的Application对象变量;Clear():清除所有的Application对象变量。GetKey:通过索引获取Application对象。6.4Application对象聊天室应用聊天室允许许多用户实时进行信息交流,所有用户都可以看到彼此的信息,Application对象正合适。网页计数器网页计数器是Application对象的另一个用途,利用Application对象被所有用户共有的特性,存储网页计数器的值。(count.aspx)(liaotianshi.aspx)6.4.2Application对象的应用6.4Application对象服务器在接收到客户端的请求后建立连接,在响应请求后断开连接。在服务器看来,每一次新的请求都是单独存在的,与以前的任何请求无关。因此,当用户在各页面之间跳转时,服务器根本无法知道并记录用户操作在各页面之间转换的过程及当前的操作状态(HTTP)。Session弥补了HTTP协议的不足,Session对象存储特定的用户会话所需要的信息。当用户在应用程序的页之间跳转时,存在Session对象中的变量不会被清除,只要该用户还在访问应用程序的页面,这些变量就始终存在。Session对象是HttpSessionState类的一个实例。6.5Session对象6.5Session对象6.5.1Session对象的属性和方法使用Session的方法“Abandon()”显式地结束一个会话,利用属性“Timeout”设置Session的失效时间。当用户首次与服务器建立连接时,服务器会给用户自动分配一个SessionID作为标识,这个SessionID是一个由24个字符组成的随机字符串。用户每次提交页面,浏览器都会把这个SessionID包含在HTTP头中提交给服务器。(session_ID.aspx、Session_Timeout.aspx)6.5Session对象Session对象与Application对象的本质区别在于:每个应用程序只有一个Application对象,被所有用户所共享;而每个应用程序可以有多个Session对象,应用程序的每个访问用户都有自己独享的一个Session对象。6.5Session对象6.6Server对象Server对象是HttpServerUtility类的实例,是ASP.NET自动创建的,因此也称为内置对象。通过Server对象可以访问服务器的方法和属性。比如得到服务器上某文件的物理路径和设置某文件的执行期限等等。Server对象的属性MachineName:获取服务器的计算机名称。ScriptTimeout:获取和设置请求超时值(以秒计)6.6.1Server对象的属性和方法通过Server对象可以访问服务器的方法和属性。比如得到服务器上某文件的物理路径和设置某文件的执行期限等等。Server对象的方法CreateObject()方法;Execute()方法;HtmlEncode()方法;MapPath()方法等6.6.1Server对象的属性和方法6.6Server对象利用Server对象的HtmlEncode方法可以对字符串进行编码,可在浏览器上显示HTML标签。利用Server对象的HtmlDecode方法可以对字符串进行解码,是HtmlEncode方法的反操作。6.6.2利用Server对象进行HTML编码和解码(Server_HtmlEncode.aspx、Server_HtmlDecode.aspx)6.6Server对象有时候,在传送网页参数时,是将数据附在网址的后面,但是遇到一些如“#”、“&”等特殊字符时,就会读不到这些字符之后的参数。利用Server对象的UrlEncode方法可以对字符串进行编码。以便通过URL从Web服务器到客户端进行可靠的HTTP传输。UrlDecode方法是UrlEncode方法的逆过程。6.6.3利用Server对象进行URL编码和解码(Server_UrlEncode.aspx)6.6Server对象Cookie是一小段保存在客户端的数据,如:(C:\DocumentsandSettings\user\Cookies)。Cookie只是一段字符串,并不能执行;大多数浏览器规定Cookie大小不超过4K;Cookie可以通过浏览器安全属性来禁止。不要在Cookie中保存密码、卡号等信息,6.7Cookie对象ASP.NET包含两个内部Cookie集合。通过HttpRequest的Cookies集合访问的集合包含以Cookie标头形式由客户端传输到服务器的Cookie。通过HttpResponse的Cookies集合访问的集合包含一些新Cookie,这些Cookie在服务器上创建并以Set-Cookie标头的形式传输到客户端。6.7Cookie对象当用户第一次访问某个站点时,Web应用程序发送给用户一个页面和一个包含日期和时间的Cookie,并且将它保存在用户磁盘上。当用户再次访问时Web应用程序就能确定该用户上次访问站点的日期和时间。Cookie是与Web站点而不是单个页面关联的,所以无论用户请求站点中的任何页面,浏览器和服务器都会交换Cookie信息。和Session的区别是:Session对象所有信息保存在服务器上,Cookie对象所有信息保存在客户端的浏览器上。6.7Cookie对象(cookie.aspx)Cookie是存在客户机上的一个文本文件,用户可以修改它,因此用户可能发送一个骗人的CookieCookies是可以设置为过期的;Cookie是否生效取决于Internet和浏览器的设置,某些用户因为个人隐私的需要,可能完全禁止Cookie的使用。这意味着我们不能总是依赖Cookie,而应该联合使用Cookie和其它状态保存机制。6.7Cookie对象F:\liaotianshi使用Application对象和Session对象统计站点被访问的次数和当前在线人数。编写聊天室程序。练习F:\liaotianshi