常用对象和状态管理_第1页
常用对象和状态管理_第2页
常用对象和状态管理_第3页
常用对象和状态管理_第4页
常用对象和状态管理_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第6章ASP.NET常用对象和状态管理本章内容:ASP.NET常用对象(包括Response,Request、Server对象等)。ASP.NET的状态管理(包括使用Cookie、Session、Application对象实现状态管理,跨页存取数据,全局数据共享等)。本章重点:Response、Request和Server对象的使用;使用Cookie对象实现状态管理,使用Session对象存、取数据,使用Application对象共享数据。6.1ASP.NET常用对象6.1.1Response对象1.Response对象的常用属性2.Response对象的常用方法3.使用Response对象(1)输出信息到客户端使用Response对象的Write方法可以将信息写入HTML流,并显示到客户端浏览器中。Write方法的语法格式如下:Response.Write(string);例6-1,P149(2)将文件内容输出到客户端使用Response对象的WriteFile方法可以将指定的文件内容直接写入HTML输出流。其语法格式如下:Response.WriteFile(filename);其中,参数filename用于说明文件的名称及路径。(3)将客户端浏览器重定向到新的URLResponse对象的Redirect方法用于将客户端重定向到新的URL。该方法的语法格式如下:Response.Redirect(url[,endResponse])其中,字符串参数url表示新的目标URL地址,可选布尔参数endResponse表示是否终止当前页的执行。例如,下列语句将使用客户端浏览器重定向到“百度”搜索引擎的主页。Response.Redirect("")如果需要从A页面传递数据到B页面,只能通过url参数中的“?”来实现。例如:stringMyName=UserName.Text; //将文本框中的文本存入变量//将变量值以Name为形参变量传送给目标页面welcome.aspxResponse.Redirect("welcome.aspx?Name="+MyName);目标页面被打开后,可以使用Request对象的QueryString属性读取上一页传递来的数据。Request对象及QueryString属性将在后面进行详细介绍。(4)使用End方法终止后续代码的执行Response对象的End方法用来输出当前缓冲区的内容,并终止当前页面的继续执行。例如:Response.Write("欢迎光临");Response.End();Response.Write("我的网站");Response-End-P1516.1.2Request对象1.Request对象的常用属性Request对象的常用属性见表6-3。2.Request对象的常用方法Request对象的常用方法有两个例如,下列代码将用户请求页面的服务器端物理路径显示到页面中,将用户的HTTP请求信息(包括HTTP头数据)保存到服务器磁盘中:Response.Write(Request.MapPath("default.aspx"));//在页面中显示请求文件在服务器中的物理路径Request.SaveAs("d:\\abc.txt",true);//将用户的HTTP请求保存到abc.txt文件中Request-MapPath-SaveAs-P1523.使用Request对象(1)获取用户IP地址Default.aspx的Load事件代码如下:privatevoidPage_Load(objectsender,objectsender,EventArgse){stringstrUserIp=Request.UserHostAddress; //获取用户IP地址

//如果“192.168.0.”是用户IP中从零位开始的子串,即用户IP为192.168.0.*(用户群A)

if(strUserIp.IndexOf("192.168.0.",0)==0){Response.Redirect("index.aspx"); //跳转到当前服务器中选课系统的首页

}//如果“192.168.1”是用户IP中从零位开始的子串,即用户IP为192.168.1.*(用户群B)

elseif(strUserIp.IndexOf("192.168.1.",0)==0){Response.Redirect("/index.aspx"); //跳转到服务器B选课系统的首页

}else //除网段和网段以外的所有用户(用户群C)

{Response.Redirect("/index.aspx"); //跳转到服务器C选课系统的首页

}}(2)接收查询字符串Request对象的QueryString集合用于接收来自用户请求URL地址中“?”后面的数据,通常将这些数据称为“查询字符串”,也称为“URL附加信息”,用于在不同网页中传递数据。使用Response对象的Redirect属性可以同时传递多个参数,其语法格式如下:Response.Redirect("目标网页?要传递的参数1&要传递的参数2&…&要传递的参数n");例如:stringVar1="zhangsan";stringVar2="zhangsan@163.com";Response.Redirect("result.aspx?Var="+Var1); //传递一个参数或Response.Redirect("result.aspx?VarA="+Var1+"&VarB="+Var2); //传递2个参数上述语句等效于:Response.Redirect("result.aspx?VarA=zhangsan&VarB=zhangsan@163.com");在目标网页中使用Request对象的QueryString属性接收参数的语法格式如下:string接收参数的变量=Request.QueryString["包含参数的变量"];例如:stringMyVar=Request.QueryString["Var"]; //提取参数变量Var的值赋给变量MyVar例6-2,P154(3)获取客户浏览器信息Request对象的Browser属性包含众多子属性,用来返回客户端浏览器的信息和客户端操作系统的信息等。例如,下列语句将返回客户端用户使用的操作系统名称:Response.Write("你使用的操作系统是:"+Request.Browser.Platform);又如,下列语句将返回客户端浏览器是否支持HTML框架:Response.Write("是否支持HTML框架:"+Request.Browser.Frames)例6-3,P156(4)使用Form集合处理表单在Web窗体页面中,往往包含有许多Web服务器控件(文本框、单选按钮、复选框等)或HTML表单。这些控件的值被存放在窗体变量中。当用户提交页面时,这些窗体变量将被发送到服务器端。使用Request对象的Form集合可以访问被提交到服务器端的窗体变量,其构成语法格式为:Request.Form[element|index]其中,element为要检索元素的ID值,index为要检索的元素从0开始的索引号。例如,将页面中ID属性为“TextBox1”的文本框的Text属性值写入标签控件Label1中的代码如下:Label1.Text=Request.Form["TextBox1"];例6-4,P1576.1.3Server对象Server对象派生自HttpServerUtility类,该对象提供了访问服务器的一些属性和方法。帮助程序判断当前服务器的各种状态。1.Server对象的常用属性Server对象的常用属性见表8-5。2.Server对象的常用方法Server对象的常用方法见表6-5。(1)Execute和Transfer方法Execute()方法的语法格式为:Server.Execute(url[,write]);其中,参数url表示希望跳转到的页面路径,可选参数write是StringWrite或StreamWrite类型的变量,用于捕获跳转到的页面的输出信息。Transfer()方法的语法格式为:Server.Transfer(url[,saveval]);例6-5,P159(2)MapPath方法在Web应用程序执行时可能需要访问存放在服务器中的某个文件,此时就需要将文件的虚拟路径转换成服务器端对应的物理路径。而Server对象的MapPath方法就是用来完成这一任务的。假设D:\ASP.NET\WebSite1是某站点在服务器上的主目录(物理路径),则下列语句将返回D:\ASP.NET\WebSite1\admin\page1.aspx文件:Server.MapPath("admin/page1.aspx");例6-6,P161;例6-7,P161:编码和解码6.2ASP.NET的状态管理6.2.1使用Cookie实现状态管理1.创建Cookie创建Cookie集合的语法格式如下:Response.Cookies["名称"].Value=值;例如,下列语句创建了一个名为“MyCookie”的Cookie,并为其赋值“OK”:Response.Cookies["MyCookie"].Value="OK";设置Cookie有效期的语法格式如下:Response.Cookies["名称"].Expires=到期时间;例如,下列语句设置名为“MyCookie”的Cookie有效期为1天:Response.Cookies["MyCookie"].Expires=DateTime.Now.AddDays(1);2.读取Cookie使用Request对象的Cookies集合可以读取保存在客户机上的指定Cookie的值,其语法格式如下:变量=Request.Cookies["名称"].Value;例如,下列语句可将Cookies集合中名为“MyCookie”的Cookie值读出,并赋给变量GetCookie:stringGetCookie=""//声明一个字符串变量if(Request.Cookies["MyCookie"]!=null)//判断目标Cookie是否存在{GetCookie=Request.Cookies["MyCookie"].Value;//读取指定Cookie的值,赋给变量}例6-8,P166;讲完下一页PPT后演示。3.使用多值Cookie前面介绍过对同一网站,客户端存储的Cookie数量不能超过20个。若需要存储较多的数据,可考虑使用多值Cookie。例如,下列语句创建了一个名为“Person”的Cookie集合,其中包含3个子属性,对于浏览器来说,只相当于一条Cookie。Response.Cookies["Person"]["P_Name"].Value="zhangsan";Response.Cookies["Person"]["P_Email"].Value="zs@163.com";Response.Cookies["Person"]["P_Home"].Value="北京";使用下列语句可从上述多值Cookie中读取数据:yr_name=Request.Cookies["Person"]["P_Name"].Value;yr_email=Request.Cookies["Person"]["P_Email"].Value;yr_home=Request.Cookies["Person"]["P_Home"].Value;或stringyr_name=Request.Cookies["Person"].Values[0];stringyr_name=Request.Cookies["Person"].Values[1];stringyr_name=Request.Cookies["Person"].Values[2];6.2.2使用Session对象1.Session的工作原理2.Session对象的常用属性及方法3.向Session对象中存入数据向Session对象中存入数据的方法十分简单,下面的语句使用户单击按钮时将两个字符串分别存入两个Session对象中:protectedvoidButton1_Click(objectsender,EventArgse){Session["MyVal1"]="这是Session传递的数据1";stringVal2="这是Session传递的数据2";Session["MyVal2"]=Val2;}4.从Session对象中取出数据下面的语句演示了当目标页面装入时如何从Session对象中取出数据:protectedvoidPage_Load(objectsender,EventArgse){Label1.Text=(string)(Session["MyVal1"]);Label2.Text=(string)(Session["MyVal2"]);}例6-9,P1706.2.3使用A

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论