




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第1章 ASP.NET内置对象模型教学提示:动态交互式网页的制作,最主要的就是数据的传递与交流;ASP.NET的Web窗体间、用户与网站服务器间及如何实现数据的保存与交流?这都要运用ASP.NET的内置对象来实现。ASP.NET内置对象有多个种类,可分别在不同的地方保存与传递各种数据,其中控制过程均在服务器端进行;ASP.NET内置对象是实现与用户的交互重要手段之一。所以应该熟练掌握掌握与运用。1.1 ASP.NET内置对象概述前几章已经阐述过C#是一种面向对象的编程语言,其中类是一个核心的概念,类就是对象的模板,定义了对象的特性,对象也就是类有实例。.NET 使用有多种对象,也可以把.NET
2、 中所有内容都称之为对象。.NET Framework 主体就可以看作是一个对象类库,含有数以百计的类,这些类都提供了强大的功能,可以方便快捷地完成各种任务。当Web应用程序运行时,这些对象可以用来维护有关的当前应用程序、浏览器、Web服务器的活动状态等基本信息,并为浏览器与Web服务器的处理交互提供一种媒介;所有这些内部对象是由封装好的类来定义的。ASP.NET提供了许多内置对象,这些对象提供了相当多的功能,如在两个网页之间传递变量、输出数据,以及记录变量值等。这些对象在ASP、ASP.NET 1.1时已经存在,在ASP.NET 2.0环境下,这些功能仍然可以使用。而且功能更强大。ASP.N
3、ET内置对象是由IIS控制台初始化的ActiveX DLL组件。IIS可以初始化这些内置组件用于ASP.NET中,所以用户也可以直接引用这些组件来实现自己的编程,即可以在应用程序中,通过引用这些组件来实现访问ASP.NET内置对象的功能。ASP.NET内置对象主要有Page、Response、Request、Server、Application、Session与Cookies对象等,每个对象都有自己的属性、方法与事件,下表是7个内置对象的主要功能说明。表4-1 ASP.NET内置对象对象名称说 明Page用来设置与网页有关的属性、方法与事件Response决定服务端如何控制客户端的变化Requ
4、est用来获得客户端递交的数据Server提供服务器端最基本的属性与方法Application可以让客户群共享的数据Session用来记录各客户端的各种信息Cookie在客户硬盘中保存访问者有关的信息,供再次浏览时调用1.2 Response对象Response对象是HttpResponse类的一个实例。该类主要是封装来自ASP.NET操作的HTTP响应信息,它向浏览器写入处理信息或者发送指令等功能,并对响应的结果进行管理。Response对象常用的方法和属性见表4-2。表4-2 Response对象常用的方法和属性方 法说 明Bufferoutput设置是否缓冲要输出到客户端Write将指定
5、的字符串或表达式的结果写到当前的HTTP输出Redirect使浏览器立即重定向到程序指定的URL End停止Web窗体页面的执行WriteFile向浏览器输出文本文件Clear在不将缓存中的内容输出的前提下,清空当前页的缓存,仅当使用了缓存输出时,才可以利用Clear方法Flush显示缓存中的内容,并清除缓冲区ClearContent清除存放在缓冲区尚未发送到客户端的输出1.2.1 BufferOutput 获取或设置一个值,该值指示是否缓冲输出,并在完成处理整个页之后将其发送, 如果缓冲了到客户端的输出,则为true;否则为false。系统默认为true,如要取消缓冲处理,可以在ASP.NE
6、TY网页的前面加上如下语句:Response.BufferOutput=false具体使用可以选择在Web窗体编制中的“源”界面,插入如下语句:也可以在.aspx编制“源”界面中输入如下语句: void page_Load(Object sender, EventArgs e) Response.BufferOutput = false; 上述程序代码在“Page_Load”事件中。1.2.2 Response对象的方法(一) 输出文本下面通过使用Response对象的Write方法完成输出文本这一功能,例如在页面上显示一段语句。该语句可以在.cs文件中输入:protected void Pa
7、ge_Load(object sender, EventArgs e) Response.Write(人民邮电出版社); 也可以在.aspx文件的“源”编辑界面中输入如下语句: void page_Load(Object sender, EventArgs e) Response.Write(人民邮电出版社); 更可简化为如下的一行语句:运行结果如图4-1所示:图4-1 用Response对象输出文本(二) 4.2.2 页面跳转使用Response.Redirect方法可以实现在不同页面之间进行跳转的功能,也就是可以从一个网页地址转到另一个网页地址,可以是本机的网页,也可以是远程的网页地址。例
8、如,输入以下代码。Response.Redirect( 当程序被执行的时候,显示的是人民邮电出版社的主页。4.2.3 停止输出在调试页面时,如需要程序运行分阶段查看某个变量的结果,那么必须在适当的位置让当前页面停止执行,可以使用Response.End()的方法来完成这个任务。1.3 Request对象Request对象提供从浏览器读取信息或者读取客户端信息等功能,可以访问HTML基于表单的数据和通过URL发送的参数列表信息,而且还可以接收来自用户的Cookie信息。在ASP.NET中对应HttpRequest类。Request对象是用来获取客户端在请求一个页面或传送一个Form时提供的所有信
9、息,这包括能够标识浏览器和用户的HTTP变量,存储在客户端的cookie的数据以及附加在URL后面的数据。Request对象常用的方法和属性见表4-3。表4-3 Request对象常用属性方 法说 明Form获取客户端输入数据QueryString获取HTTP查询字符串集合HttpMethod获取客户端使用的HTTP数据传输方法UserAgent传回客户端浏览器的版本信息UserHostAddress传回远方客户端的主机IP地址UserHostName传回远方客户端的DNS名称PhysicalApplicationPath传回目前请求网页在服务器端的真实路径Url获取当前请求的URLReque
10、st对象通常包括了用户端的相关信息,如浏览器的种类、表头信息、表单参数等等。它有3种获取常用的数据的方法,即Request.Form、Request.QueryString、Request,第三种是前两种的一个缩写,可以取代前两种情况。而前两种主要对应Form提交时的两种不同方法,分别是Post方法和Get方法。获取从Html网页表单中递交的数据,如有一input.htm网页文件,其源代码如下:姓名: 运行结果如图4-2所示。图4-2 一个用户输入的HTML网页然后建立一个新的Web窗体,在页面上设置一个“Label”标签控件,并在相应的.cs文件中输入如下代码protected void P
11、age_Load(object sender, EventArgs e) Label1.Text = RequestT1.ToString()+你好! ;输出结果如图4-3所示。图4-3 Request取得输入的数据并显示程序中利用“Request读取文本框名字”来读取数据,将读取的数据赋值给字符串变量,然后显示出来。Request对象的属性和方法还有UserAgent传回客户端浏览器的版本信息,UserHostAddress传回远方客户端的主机IP地址,UserHostName传回远方客户端的DNS名称,PhysicalApplicationPath传回目前请求网页在服务器端的真实路径等。可
12、以新建一个Web窗体,然后双击其空白处进入.cs文件编辑界面,输入如下语句:protected void Page_Load(object sender, EventArgs e) Response.Write(客户端浏览器: +Request.UserAgent+); Response.Write(客户端IP地址:+Request.UserHostAddress+); Response.Write(服务器端物理路径: + Request.PhysicalApplicationPath + );编译运行后就可以得到相应的结果。1.4 Server对象Server对象是HttpServerUti
13、lity的一个实例。该对象提供对服务器上的方法和属性的访问,获取有关服务器的信息。Server对象提供对服务器上的方法和属性的访问。其中大多数方法和属性是作为实用程序的功能服务的。Server对象也是Page对象的成员之一,主要提供一些处理页面请求时所需的功能;例如建立COM对象、将字符串的编译码等工作。Server对象的常用属性见表4-4。表4-4 Server对象的常用属性名 称说 明ScriptTimeout设置和获取请求服务器的超时MachineName获取服务器的计算机名称MapPath返回与Web服务器上的虚拟目录对应的物理路径HtmlEncode显示有关HTML标记Transfe
14、r当前页面重定向Server对象提供对服务器上的方法和属性的访问,其中大多数方法和属性是为实用程序提供服务的。通过Server对象可以访问服务器的方法和属性。比如得到服务器上某文件的物理路径和设置某文件的执行期限等。输入以下语句,运行后会显示该文件所在的物理位置。Response.Write(Server.MapPath(Default.aspx);如需要在浏览器上显示某些HTML标记,如“”可使用Server对象的HTMLencode方法,具体如下所示:Response.Write(Server.HtmlEncode( 人民邮电出版社新书发行目录);Response.Write();输出结果
15、如图4-4所示。图4-4 用Server对象在网页中显示HTML标记以上通过HTMLEncode方法使客户可以将字符串翻译成可接受的HTML格式,另一Server对象URLEncode方法可以根据URL规则对字符串进行正确编码。当字符串数据以URL的形式传递到服务器时,在字符串中不允许出现空格,也不允许出现特殊字符。为此,如果希望在发送字符串之前进行URL编码,则可以使用Server. URLEncode方法。对字符串进行URL编码,并返回已编码的字符串,可使用如下语句:public string UrlEncode(string);URL对字符串进行编码,并将结果输出发送到TextWrite
16、r输出流。public void UrlEncode(string, TextWriter);例如输入以下面语句:Response.Write(Server.URLEncode();则将产生如下输出:http %3A%2F%2Fwww%2Emicrosoft%2EcomServer对象的MapPath方法是返回与Web服务器上的虚拟目录对应的物理路径。使用Server.MapPath(“.”)语句可以取当前文件的物理路径;使用Server.MapPath(“/”)传回网站的根路径;使用Server.MapPath(“/website.txt”)传回网站根路径下website.txt文件的位置。
17、Server对象的Transfer方法与前面介绍过的Response的对象Redirect方法非常相似,都是作用于将当前页面重新定向到另一个页面中,如将当前页面转到chat.aspx页面的语句如下:Server.Transfer(chat.aspx);1.5 Application对象Application对象属HttpApplictionStat类,可以在多个请求、连接之间共享公用信息,也可以在各个请求连接之间充当信息传递的管道。使用Application对象来保存希望共享传递的变量。由于在整个应用程序生存周期中,Application对象都是有效的,所以在不同的页面中都可以对它进行存取,就
18、像使用全局变量一样方便;Application对象让所有的成员共享其包含的所有信息,并且可以在网站运行期间持久保存数据。所有的用户都可以对某个特定的Application对象进行修改,常见的应用为聊天室和网站计数器等,也可保持某些数据由各用户共享;Application对象的常用方法见表4-5。表4-5 Application对象的常用方法名 称说 明Add新增一个新的Application对象变量Clear清除全部的Application对象变量Get使用索引关键字或变数名称得到变量值GetKey使用索引关键字來获取变量名称Remove使用变量名称删除一个Application对象Remov
19、eAll删除全部的Application对象变量Set使用变量名更新一个Application对象变量的內容Lock用于锁定对象unlock用于解锁以下是一个访问该网页次数的程序,即计数器:Application.Lock(); Applicationcounter =Convert.ToInt32(Applicationcounter) + 1; Application.UnLock(); 您为本网站第位客人!运行后会显示相应的数字,每刷新一次,数字自动加1。由于Application对象是多用户共享的对象,为了保证在一个时间只有1个用户操作Application对象,程序中“Applica
20、tion.Lock()”语句对Application对象进行锁定,操作完成之后再由Application.UnLock()进行解锁。网上聊天室要在众多用户间显示聊天的内容,所有用户都可以看到彼此的信息,Application对象恰好可以提供此功能。所以使用Application建立简单的实时网上聊天室是十分方便的。具体程序可以由3个文件组成,第一个为聊天界面主程序网页使用框架语句framest显示二个网页:语句如下:聊天室 上述语句是HTML标记,作用是在网页中显示上下二个Web窗体页面文件,show.aspx与input.aspx。然后添加一个新的 Web 窗体,取名为input.aspx将
21、工具箱中二个“Label”与二个“TextBox”、一个“Button”控件拖放到页面合适的位置,并将控件的“Text”属性分别改成如图所示的内容:图4-5 聊天室输入input.aspx页面 完成后双击“提交”按钮,进入该按钮事件执行代码输入界面,也就是在相应的cs文件中,具体如下:protected void Button1_Click(object sender, EventArgs e) for (int i = 1; i 5; i+) Applicationa + i.ToString() = Applicationa + (i+1).ToString(); Applicationb
22、 + i.ToString() = Applicationb + (i+1).ToString(); Applicationa5 = TextBox1.Text; Applicationb5 = TextBox2.Text; 将聊天室对话显示设为5行,每行包含发言人姓名与发言内容,其中Applicationa1为第一行发言人姓名,Applicationb1为其发言内容,Applicationa2与Applicationb2为第二个发言人姓名与发言内容,一直显示五行发言记录,由于不断有人发言,所以新发言人的姓名与发言内容赋值于Applicationa5与 Applicationb5,而原先发言的
23、内容依次上移一行,通过一个循环过程来实现。完成后再添加一个新的 Web 窗体,取名为show.aspx无需添加任务控件,在show.aspx文件的“源”编辑界面中加入刷新代码,具体如下: 聊天室发言显示 meta也是HTML的一种标记,用来描述一个HTML网页文档的属性,例如作者、日期和时间、网页描述、关键词、页面刷新等。这里是每隔3秒钟自动刷新的设置。然后返回到show.aspx文件的“设计”编辑界面,双击空白处,进入相应的.cs文件编辑界面,输入以下语句:protected void Page_Load(object sender, EventArgs e) for(int i=1;i=5
24、;i+) Response.Write(Applicationa + i.ToString() + :); Response.Write(Applicationb + i.ToString() + ); 以上语句的功能就是将五行发言人姓名与发言内容显示。完成了三个文件编制,编译后运行,效果如下图所示: 图4-6 聊天室运行界面通常Application对象是不会因为某一个甚至全部用户离开就消失,一旦建立了Application变量,就会一直存在直到服务器关闭或者该Application卸载。1.6 Session对象使用Session对象可以存储特定的用户会话所需的信息,对应HTTPSessi
25、on类。当用户在应用程序的页面之间跳转时,存储在Session对象中的变量不会被清除,而是在整个用户会话过程中保存。Session与Application对象都是在服务器端保存数据或对象,但Application对象中保存的数据可以为所有的浏览用户所共享,而Session则仅不特定访问用户所使用。Session对象的常用属性和方法见表4-6。表4-6 Session对象的常用属性和方法名 称说 明CodePage获取或设置当前会话的代码页标识符Contents获取对当前对话状态的引用SessionID获取用于标识会话的唯一会话IDMode获取当前会话状态模式Timeout获取并设置在会话状态提
26、供程序终止会话之前各个请求之间的超时期限(单位为分钟)Abandon取消当前会话,当前的Session对象失效Add将新的项添加到会话状态中RemoveAll删除所有Session变量用户上网浏览时就与Web服务器建立了一个Session;与此同时,服务器也自动为其分配一个SessionID,以标识该用户的唯一身份,要得到该ID,可经使用Session对象的SessionID属性。用SessionID属性获取用户的ID程序代码如下:Response.Write(Session.SessionID);Session对象的自定义属性和Application的自定义属性用法基本一致,语法格式为:Se
27、ssion“属性名”,当用户会话结束、过期或被放弃后,服务器将使Session对象的失效。使用Session对象的方法“Abandon()”可以结束会话,另外运用属性“Timeout”也可以设置Session对象的失效时间。Session对象较常用的功能是避免未登录的用户访问网站的某些页面,以下例子可以看到通过Session的运用所产生的效果。实例共分 3个文件,第一个文件是菜单,名为“menu.htm”,上有“登录”,“浏览”二个链接,分别链接“login.aspx”与“browse.asp”页面;建立完成文件之后,在login.aspx文件的设计界面中设置二个输入框,用于输入用户名与口令及
28、一个“提交”按钮。在相应的.cs文件中输入以下代码: protected void Page_Load(object sender, EventArgs e) if(Sessionuser!=null) Response.Write(您已登录); Response.End(); protected void Button1_Click(object sender, EventArgs e) /检验用户名与口令正确性后 Sessionuser = TextBox1; Server.Transfer(menu.htm); 程序首先通过检查Sessionuser 来确定用户是否已经登录过,如登录过,
29、则提示用户已登录,返回上页,否则就进入登录界面,用户输入提交后,通常程序对用户输入内容正确与否进行检验,这将在以后章节阐述;完成后赋值于Sessionuser并返回上一页面。在browse.aspx.cs文件中输入以下语句:protected void Page_Load(object sender, EventArgs e) if (Sessionuser != null) Response.Write(欢迎进行网站浏览!); else Response.Write(请先登录); 当用户尚未登录直接点击“浏览”链接后,进入browse.aspx后,同样首先通过对Sessionuser进行检查
30、,如果已赋值,则显示欢迎语句,否则提醒用户进行登录。通常Session有效时间为20分钟,如要延长或减少可以通过Timeout设置,可以用来显示用户在线或访问次数等。1.7 Cookie对象Cookie对象是用户访问Web 网站时,在自己的硬盘中保存的某些信息,实际上是一个字符串或一个标志。当一个包含Cookie对象的页面被用户浏览器读取时,一个Cookie对象就被存入到本地硬盘中,当需要时,该网站可以从用户的本地硬盘中读取这些Cookie对象。Cookie对象和Session对象的区别是Session对象所有信息保存在服务器上,Cookie对象所有信息保存在客户端的电脑中,Cookie对象对
31、应于HttpCookie类,具体属性与方法见下表。表4-7 Cookie对象的常用属性和方法名 称说 明Expire设定Cookie变量的有效时间Name获取Cookie变量的名称Value获取或设定Cookie变量的内容值Version获取或设置此Cookie符合的HTTP状态维护版本Timeout获取并设置在会话状态提供程序终止会话之前各个请求之间的超时期限(单位为分钟)Add新增一个Cookie变量Clear清除Cookie集合内的变量Get通过变量名或索引得到Cookie的变量值GetKey以索引值来获取Cookie的变量名称Remove通过Cookie变量名来删除Cookie变量一般浏览器支持多达 4096 字节的 Cookie,这一空间已经足够大,浏览器还限制了单个站点只允许保存 20个Cookie,如果试图保存更多的 Cooki
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 7.5 解直角三角形说课稿-2025-2026学年初中数学苏科版2012九年级下册-苏科版2012
- 人教版二年级上册数学全册集体备课教学设计(配2025年秋改版教材)
- 二年级品德下册 主题三“我们一起做”说课稿 首师大版
- 探究与实践 看云识天气教学设计-2025-2026学年初中地理湘教版2024七年级上册-湘教版2024
- 《第一单元 唱歌 大雨和小雨》(教学设计)-2023-2024学年人教版(2012)音乐一年级上册
- 农药的田间药效试验说课稿-2025-2026学年中职专业课-植物保护技术-农林类-农林牧渔大类
- 蒲城县医院知识培训课件
- 蒜苔农业知识培训课件
- 葡萄酒酒标基础知识培训
- 2025年林业时政试题及答案解析
- 皮肤炎症修复管理办法
- 车辆检测与维修驾驶员聘用合同
- 加强教师反思促进专业成长
- 2025年安全生产考试题库:安全生产隐患排查治理实操技能试题汇编
- PCR基本知识课件
- 员工烧烤联谊活动方案
- 草原安全管护方案(3篇)
- 中国鱼腥草素钠栓行业市场发展前景及发展趋势与投资战略研究报告(2024-2030)
- 农村教育现状分析
- 幼儿园采购协议书范本
- 胆道疾病的检查与护理
评论
0/150
提交评论