首页 > 知识点讲解
       ASP.NET的内置对象
知识路径: > 电子商务系统程序设计基础 > 电子商务系统建设 > B/S结构程序设计 > 
被考次数:2次     被考频率:低频率     总体答错率:51%     知识难度系数:     
相关知识点:53个      
        ASP.NET应用程序运行在服务器端,而在Web应用程序中,通常需要存储客户端的信息,或者在客户端及服务器端传递信息。在ASP.NET中包含了一些类,这些类在页面中可以直接使用,称之为内置对象。使用这些内置对象可以在页面之间传递参数,保存页面内的状态等。
        在ASP.NET中,内置对象包括Page、Response、Request、Application等。
               Page对象
               Page对象对应于.aspx文件。ASP.NET网页在执行时将自动生成Page对象,此对象无需特别指定名称,其保留名称为Page。
                      Page对象的主要用途。
                      .提供网页开始或已经下载后自动触发的事件,供程序设计者编写事件处理程序。
                      .提取浏览器提交的内容,或者输出信息给浏览器。
                      .设定是否保持Web Form中各控件最近的状态。
                      .进行与数据绑定有关的操作。
                      Page对象的常用属性。
                      .Controls:获取ControlCollection对象,该对象并不包含页面内的所有控件,它只显示Page类的直接子控件,而不再显示这些子控件的子控件。
                      .IsPostBack:该属性返回一个布尔值,true表示当前网页是由于客户端返回数据而加载的,false表示首次加载而非回传。
                      .IsValid:该属性获取一个布尔值。true表示网页上的验证控件全部验证成功,false表示至少有一个验证控件验证失败。
                      .EnableViewState:设置是否启用Web Form的状态保持功能,该属性的默认值为ture。
                      Page对象的常用方法。
                      .DataBind:将数据源绑定到被调用的服务器控件及子控件。
                      .FindControl(id):查找指定id的服务器控件,如果存在,则返回该控件,否则为null。
                      .RegisterClientScriptBlock:向客户端发送脚本块。
                      .Validate:指示页面中的验证控件进行验证。
                      Page对象的常用事件。
                      在ASP.NET网页开始载入到被完全写入浏览器的过程中,产生的与Page对象有关的主要事件有Init、Load和UnLoad等三个。
                      ①Init:当服务器控件初始化时发生。
                      ②Load:当服务器控件加载到Page时发生。
                      ③UnLoad:当服务器控件从内存中卸载时发生。
                      这些事件触发顺序如下图所示。
                      
                      Page对象的常用事件触发顺序
               Request传递请求对象
               Request对象主要用于获取来自客户端的数据,如用户填入表单的数据、保存在客户端的Cookie等。
                      Request对象常用的属性
                      (1)QueryString:获取通过URL路径传来的数据。
                      在ASP.NET中,页面跳转时需要在页面间传递参数,可以将参数写在URL中,并通过QueryString属性是用来获取URL字符串变量的集合。QueryString主要用于收集http协议中get请求发送的数据,如果在一个请求事件中被请求的URL地址出现了“?”形式的参数传递,则表示此次请求方式为get,该方式能够传递256字节的数据。
                      例如在用户登录成功后需要将用户名传递给管理页面,假设登录页面为Login.aspx、管理页面为Manager.aspx,可以按照如下方式实现。
                      ①在登录页的类文件中,如果登录成功,编写如下代码:
                      
                      该语句表示登录成功页面跳转到Manager.aspx,并且通过URL传递一个参数username,值为变量username(程序中保存用户名的变量)中的值。
                      ②在Manager.aspx页的类文件的Page_Load事件方法中,编写如下代码:
                      
                      上述代码使用Request的QueryString属性来获取传递的URL参数username的值。在URL中也可以包含多个参数,中间用“&”隔开。
                      (2)Form:获取通过表单提交传输的数据。
                      在通过QueryString获取URL参数时,只能获取get方式传递的值、传递值的大小有限、且参数值显示在了URL中(不安全)。另一种传递方式为post,可传递较大内容,且传输的数据加密、不在URL中显示。表单就是这样一种形式,可以使用Request的Form获取使用post方式传递的参数,形式为:Request. Form["参数名"]。
                      (3)Params:获取get方式或post方式传递的参数。
                      (4)UserHostAddress:获取远程客户端主机的IP地址。
                      (5)Browser:获取有关正在请求的客户端的浏览器功能的信息。
                      (6)Path:获取当前请求的虚拟路径。
                      (7)ContentLength:指定客户端发送数据的长度(以字节为单位)。
                      (8)FilePath:获取当前请求的虚拟路径。
                      (9)Headers:获取HTTP头集合。
                      (10)HTTPMethod:获取HTTP传输方式(get还是post)。
                      Request对象有两个常用方法
                      .MapPath(VirtualPath):该方法将请求中的URL虚拟路径转换成服务器的物理路径。
                      .SaveAs(fileName,includeHeaders):该方法将客户端的Http请求保存在磁盘,参数fileName表示服务器的保存位置,参数includeHeaders表示是否同时保存Http头。
               Response请求响应对象
               Response对象主要用于生成HTML内容并送交浏览器。
                      Response对象的常用属性
                      .BufferOutput:获取或设置一个值,该值指示是否缓冲输出,并在完成处理整个页面之后将其发送。
                      .Cache:获取Web页面的缓存策略。
                      .Charset:获取或设置输出流的HTTP字符集类型。
                      .IsClientConnected:获取一个值,通过该值指示客户端是否仍连接在服务器上。
                      .ContentEncoding:获取或设置输出流的HTTP字符集。
                      .TrySkipIisCustomErrors:获取或设置一个值,指定是否支持IIS 7.0自定义错误输出。
                      Response对象的常用方法
                      Response可以输出HTML流到客户端,其中包括发送信息到客户端和客户端URL重定向,不仅如此,Response还可以设置Cookie的值以保存客户端信息。Response的常用方法如下所示:
                      .Write:向客户端发送指定的HTTP流。
                      .End:停止页面的执行并输出相应的结果。
                      .Clear:清除页面缓冲区中的数据。
                      .Flush:将页面缓冲区中的数据立即显示。
                      .Redirect:客户端浏览器的URL地址重定向。
               Application状态对象
               Web站点事实上是一个多用户的应用程序。Application对象是Web应用程序中的一个公共变量,任何一个用户写入其中的信息都可以被其他用户看到。Application对象的生命周期与Web应用程序的生命周期相同,始于Web站点开始运行时,终于站点停止运行时。在此期间,任何一个访问者都可以读取或改写Application对象中的内容。第一个用户访问网站时,将触发Application对象的OnStart事件,而站点服务终止时,将触发Application对象的OnEnd事件。在ASP.NET中,上述两个事件的处理程序应放置在Global.asax中。在Application对象的OnStart事件的处理程序中,通常用Add方法来添加Application变量。在Application对象的OnEnd事件的处理程序中,通常进行释放Application变量的操作。
                      Application对象常用的属性
                      .AllKey:获取HttpApplicationState集合中的访问键。
                      .Count:获取HttpApplicationState集合中的对象数。
                      Application对象常用的方法
                      .Add:新增一个Application对象变量。
                      例如:
                      
                      若需要使用Application对象,可以通过索引Application对象的变量名进行访问,例如:
                      
                      .Clear:清除全部的Application对象变量。
                      .Get:通过索引关键字或变量名称得到变量的值。
                      例如:
                      
                      .GetKey:通过索引关键字获取变量名称。
                      .Lock:锁定全部的Application对象变量。
                      .UnLock:解锁全部的Application对象变量。
                      Application是网站公共的对象,任何一个用户都可以访问,所以为了防止各用户间访问的冲突,在使用Application对象时可以加锁,使用完再解锁。例如:
                      
                      .Remove:使用变量名称移除一个Application对象变量。
                      .RemoveAll:移除所有的Application对象变量。
                      .Set:使用变量名更新一个Application对象变量。
                      Application对象常用的事件
                      .Start事件:该事件是在Web应用程序启动时发生。
                      .End事件:该事件在Web应用程序结束时发生,即Web服务器关闭或重新启动时。
               Session状态对象
               当用户请求一个ASP.NET页面时,系统将自动的建立一个Session(会话),用户退出应用程序或服务器关闭时,会话撤销。Session创建时,系统为Session建立一个标识字符串SessionID,用来管理和跟踪Session,该标识字符串很长,而且具有随机性和唯一性,保证了每个用户Session不会冲突以及Session的安全性。
               Session一般用来存储跨页程序的变量或对象,功能基本同Application对象类似。但Application对象针对整个网站,Session对象变量只针对一个用户,即同一个网站的不同用户的Session对象是不相同的,而且每个用户之间也不能互相访问Session。Application对象终止于IIS服务停止,但是Session对象当网页使用者关闭浏览器或者网页使用者在页面进行的操作时间超时,Session对象将会自动注销。
                      Session对象的属性
                      .Count:获取Session对象中子对象的数量。
                      .IsCookieLess:返回一个布尔值,true表示将SessionID嵌套在URL中,否则存放在Cookies中。
                      .IsNewSession:如果用户访问页面时创建新会话,则此属性将返回true,否则返回false 。
                      .IsReadOnly:返回一个布尔值,表示Session是否为只读。
                      .SessionID:获取SessionID的值。
                      .TimeOut:传回或设置Session对象变量的有效时间,如果在有效时间内有没有任何客户端动作,则会自动注销。
                      注意:如果不设置TimeOut属性,则系统默认的超时时间为20分钟。
                      Session对象的方法
                      .Add:创建一个Session对象。
                      .Remove:删除会话集合中的项。
                      .RemoveAll:删除会话集合中的所有项。
                      .RemoveAt(index):删除会话指定索引的项。
                      .Abandon:该方法用来结束当前会话并清除对话中的所有信息,如果用户重新访问页面,则可以创建新会话。
                      .Clear:此方法将清除全部的Session对象变量,但不结束会话。
                      注意:Session对象可以不需要Add方法进行创建,直接使用Session["变量名"]=变量值的形式也可以创建Session对象。
                      Session对象常见属性
                      .Start事件:在创建Session时发生。
                      .End事件:在会话结束时发生。
                      注意:当用户关闭浏览器或者退出应用程序时,并不会触发Session_End事件。End事件只有在服务器Web应用程序退出,或者用户调用Abandon方法或者未执行任何操作时间超过了Session设定的TimeOut时才触发。
                      Session对象的使用
                      ①给Session中写入值的操作如下:
                      
                      或者
                      
                      ②修改Session中的数据操作如下:
                      
                      ③读取Session对象中的数据:
                      
                      注意:Session["对象名"]返回值是一个Object类型的对象,读取时注意类型的转换。
                      Session对象可以使用于安全性较高的场合,如后台登录。在管理员登录后台以后,管理员拥有一定的操作时间,而如果管理员在这段时间不进行任何操作的话,为了保证安全性,后台将自动注销,如果管理员需要再次进行操作,则需要再次登录。在管理员登录时,如果登录成功,则需要给管理员一个Session对象,代码如下:
                      
                      为了防止非法访问主页index.aspx,在index.aspx.cs文件的Page_Load方法中,可以判断是否已经存在Session对象,如果存在Session对象,则说明管理员当前的权限是正常的,而如果不存在Session对象,则说明当前管理员的权限可能是错误的,或者是非法用户正在访问该页面,代码如下:
                      
                      当管理员单击注销按钮时,则会注销Session对象并提示再次登录,例如:
                      
               Server服务对象
               Server对象是HttpServerUtility的一个实例,该对象提供对服务器上的方法和属性进行访问。
                      Server对象的常用属性
                      .MachineName:获取远程服务器的名称。
                      .ScriptTimeout:获取和设置请求超时时间。
                      Server对象的常用方法
                      .Execute:使用另一个页面执行当前请求。
                      .Transfer:终止当前页面的执行,并为当前请求开始执行新页面。
                      .HtmlDecode:对已被编码的消除Html无效字符的字符串进行解码。
                      .HtmlEncode:对要在浏览器中显示的字符串进行编码。
                      HTML中,诸如“<”等字符是具有特定含义的,如果希望在页面上显示“<”,就必须对字符进行HTML编码在显示,例如:
                      
                      在使用了HtmlEncode方法后,编码后的HTML标注会被转换成相应的字符,如符号“<”会被转换成字符“<”。在进行解码时,相应的字符会被转换回来,并呈现在客户端浏览器中。
                      .MapPath:返回与Web服务器上的执行虚拟路径相对应的物理文件路径。
                      .UrlDecode:对URL字符串进行解码。
                      .UrlEncode:编码字符串,以便通过URL从Web服务器到客户端浏览器的字符串传输。
                      URL地址中不能包括空格、换行符等符号,如果需要使用这些符号,可以使用UrlEncode方法和UrlDecode方法进行变量的编码解码,例如:
                      
                      在index.aspx.cs文件的Page_Load方法中可以接收该字符串并解码。
                      
                      重定向到其他网页
                      在ASP.NET中,Response.Redirect()和Server.Transfer()都能实现网页重定向。这两个方法的区别在于:
                      利用Response.Redirect(),可重定向到已存在的任何网页;而Server.Transfer()只能用于重定向到已存在的位于同一目录或同一目录之下的ASP.NET网页。
                      利用Response.Redirect()完成重定向后,浏览器地址栏将显示新网页的URL,而利用Server.Transfer()完成重定向后,浏览器地址栏仍然显示原网页的URL。
                      利用Server.Transfer()完成重定向后,原网页中所有内置对象的值仍保留;而利用Response.Redirect()完成重定向后,原网页中所有内置对象的值将不存在。
                      就重定向速度而言,Server.Transfer()优于Response. Redirect()。
               Cookie状态对象
               Cookie对象也是保存用户信息的一种对象,但Cookie对象保存在客户端的硬盘中,而Session对象和Application对象保存在服务器端,所以Cookie对象能够长期保存。通过HttpRequest的Cookies集合来进行访问Cookie对象,Cookie的特点如下:
               Cookie对象可以配置过期时间,如果没有配置将在浏览器会话结束后立即到期。
               无需任何服务器资源:Cookie无需任何服务器资源,存储在本地客户端中。
               大多数浏览器支持最大Cookie数据为4K。
               如果客户端浏览器配置禁用Cookie配置,则Web应用中使用的Cookie将被限制,客户端将无法保存Cookie。
               Cookie对象可以存放非敏感的用户信息。现在有很多的软件能够伪装Cookie,这意味着保存在本地的Cookie并不安全,Cookie能够通过程序修改为伪造,这会导致Web应用在认证用户权限时会出现错误。
                      Cookie对象的属性
                      .Name:获取或设置Cookie的名称。
                      .Value:获取或设置Cookie的Value。
                      .Expires:获取或设置Cookie的过期的日期和时间。
                      .Version:获取或设置Cookie符合HTTP维护状态的版本。
                      Cookie对象的方法
                      .Add:增加Cookie变量。
                      .Clear:清除Cookie集合内的变量。
                      .Get:通过变量名称或索引得到Cookie的变量值。
                      .Remove:通过Cookie变量名称或索引删除Cookie对象。
                      Cookie对象的应用
                      (1)创建Cookie对象。通过Add方法能够创建一个Cookie对象,并通过Expires属性设置Cookie对象在客户端中所持续的时间,例如:
                      
                      (2)获取Cookie对象。Web应用在客户端浏览器创建Cookie对象之后,就可以通过Cookie的方法读取客户端中保存的Cookies信息,例如:
                      
                      在一些网站或论坛中,经常使用到Cookie,当用户浏览并登录在网站后,如果用户浏览完毕并退出网站时,Web应用可以通过Cookie方法对用户信息进行保存。当用户再次登录时,可以直接获取客户端的Cookie的值而无需用户再次进行登录操作。
 
 相关知识点:
 
软考在线指南
优惠劵及余额
在线支付
修改密码
下载及使用
购买流程
取消订单
联系我们
关于我们
联系我们
商务合作
旗下网站群
高级资格科目
信息系统项目管理师 系统分析师
系统架构设计师 网络规划设计师
系统规划与管理师
初级资格科目
程序员 网络管理员
信息处理技术员 信息系统运行管理员
中级资格科目
系统集成项目管理工程师 网络工程师
软件设计师 信息系统监理师
信息系统管理工程师 数据库系统工程师
多媒体应用设计师 软件评测师
嵌入式系统设计师 电子商务设计师
信息安全工程师
 

本网站所有产品设计(包括造型,颜色,图案,观感,文字,产品,内容),功能及其展示形式,均已受版权或产权保护。
任何公司及个人不得以任何方式复制部分或全部,违者将依法追究责任,特此声明。
本站部分内容来自互联网或由会员上传,版权归原作者所有。如有问题,请及时联系我们。


工作时间:9:00-20:00

客服

点击这里给我发消息 点击这里给我发消息 点击这里给我发消息

商务合作

点击这里给我发消息

客服邮箱service@rkpass.cn


京B2-20210865 | 京ICP备2020040059号-5 |京公网安备 11010502032051号 | 营业执照 | Copyright ©2000-2023 All Rights Reserved 软考在线版权所有