教学材料《Web应用开发》-第四章_第1页
教学材料《Web应用开发》-第四章_第2页
教学材料《Web应用开发》-第四章_第3页
教学材料《Web应用开发》-第四章_第4页
教学材料《Web应用开发》-第四章_第5页
已阅读5页,还剩99页未读 继续免费阅读

下载本文档

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

文档简介

4.1ASP.NET内置对象概述ASP.NET提供了许多内置对象,这些对象提供了相当多的功能,例如,可以在两个网页之间传递变量、输出数据,以及记录变量值等。这些对象在ASP时代已经存在,到了ASP.NET环境下,这些功能不但仍然可以使用,而目它们的种类更多,功能也更强大,不同的是,这些内部对象是由.NETFramework中封装好的类来实现的。ASP.NET的这些内置对象是在页面初始化请求时自动创建的,所以在程序中可以直接使用,不击要对类进行实例化。ASP.NET的常用内置对象有以下6个,见表4-1。返回下一页4.1ASP.NET内置对象概述这些对象都有自己的属性、方法、事件和集合。其中属性用来描述该对象的性质,方法用来定义该对象的操作,事件是为响应某个活动而生成的,集合是含有对象的键值对。对于对象的属性、方法和事件的访问格式如下:(1)对象属性的访问格式对象名.属性名(2)对象方法的访问格式对象名.方法名(参数表)(3)对象事件的访问格式对象名事件名(参数表)返回上一页4.2Page对象4.2.1Page对象简介Page对象是由System.Web.UI.Page类来实现的,它用来操作ASP.NET的整个页面。Page对象的常用的属性、方法、事件见表4-2、表4-3、表4-4。返回下一页4.2Page对象4.2.2Init事件Init事件是在页面第一次被请求时触发的初始化事件,卞要是用于进行页面对象或控件的初始化等工作。同一个页面只会触发一次Init事件。【例4-1】使用下拉列表显示所有课程名,并通过文本框及单击按钮添加新课程名。

(1)打开VisualStudio2005,新建一个项目Chapter04,在其中新建一个页面4-l.aspx。(2)在页面中分别拖入一个文本框TextBox控件、一个按钮Button控件和一个下拉列表DropDownList控件。

(3)在Page_Init及Buttonl_Click事件中,输入如下代码:上一页下一页返回4.2Page对象返回protectedvoidPaqe_Init(objectsender,EventArgse){DropDownList1.items.Add(“语文")DropDownList1.items.Add(“数学")}protectedvoidButtonl_Click(objectsender,EventArgse){DropDownListl.Iterns.Add(TextBoxl.Text);}上一页下一页4.2Page对象

程序说明:页面首次被访问时,会执行Init事件内的程序,在下拉列表中预设了两项课程名“语文”、“数学”,如图4-1所示。当在文本框中填写新的课程名,单击“确定”按钮后,再次加载页面,就可以完成添加新课程名到下拉列表的功能,如图4-2所示。返回上一页下一页4.2Page对象4.2.3Load事件Load事件在页面每次加载时,都会被触发。同一个页面会触发多次Load事件,包括第一次请求以及此后的每次页面回发。【例4-2】将例4-1中的Page_Init事件改为Page_Load事件,查看执行效果。Page_Load及Buttonl_Click事件代码如下:返回上一页下一页4.2Page对象返回protectedvoidPaqe_Load(objectsender,EventArgse){DropDownList1.items.Add(“语文")DropDownList1.items.Add(“数学")}protectedvoidButtonl_Click(objectsender,EventArgse){DropDownListl.Iterns.Add(TextBoxl.Text);}上一页下一页4.2Page对象首次访问页面时的效果图与图4-1一致。当在文本框中填写新的课程名,单击“确定”按钮后,再次加载页面,会出现重复名称,如图4-3所示。这是因为Load事件与Init事件不同,当窗体数据被发到服务器时,Load事件会再次被触发。返回上一页下一页4.2Page对象4.2.4IsPostBack属性IsPostBack属性返回值为一个布尔值,当它的值为False时,表小页而首次被访问或加载;当值为True时,表示页面是为响应客户端而加载的。[例4-3]改进例4-2程序,去掉下拉列表中的重复名称。在Page_Load事件中使用IsPostBack属性判断页面是否为第一次加载。Page_Load事件代码如下:返回上一页下一页4.2Page对象返回protectedvoidPaqe_Load(objectsender,EventArgse){if(!Paqe.isPostBack){DropDownList1.items.Add(“语文")DropDownList1.items.Add(“数学")}}上一页下一页4.2Page对象4.2.5IsValid属性IsValid属性返回值为一个布尔值,用于检查页面中的所有验证控件是否均已成功进行验证。如果页面验证成功,则值为True,否则值为False。[例4-4]使用IsValid属性来判断页面中的服务器控件是否验证成功,并输出提示信息。返回上一页下一页4.2Page对象protectedvoidButtonlClick(objectsender,EventArqse){if(Paqe.isValid=true){Label.Text=”您的输入信息通过验证!”;}Else{Label.Text=”您的输入信息验证失败!”;}}返回上一页4.3Response对象Response对象和Request对象实现了Web服务器和Web客户端的交互。Request对象表小客户端向服务器端发送的HTTP请求,Response对象用于从服务器向客户端发送数据。4.3.1Response对象的简介Response对象是由类System.Web.HttpResponse来实现的。当客户端浏览器向服务器清求一个HTML文档时,服务器直接将HTML文档发送给浏览器,告诉浏览器响应内容的报头、服务器端的状态信息及输出指定的内容。Response对象的常用属性及方法见表4-5和表4-6。返回下一页4.3Response对象4.3.2Write方法

Response对象的Write方法是将信息从服务器端输出到客户端浏览器上。通常,Write方法用于输出变量或易变动的数据。格式:Response.Write(“字符串/变量”)例如,在页面显小系统当前时间可以写成:Response.Write(“当前时间为:”+DateTime.Now.ToStrinq());通常在程序中<%Response.write(XXX)%>可简写为<%=XXX%>。返回上一页下一页4.3Response对象4.3.3Redirect方法在网页中,可以使用超链接引导访问者到另一个页面,不过访问者必须点击超链接才可以进行访问,但是有时候希望页面能够自动贡定向到另一个页面。比如,用户没有升录就有权访问某个页面,当用户访问时就击要使页面自动跳转到升录页面。这时,可以使用Redirect方法来贡定向用户到另一个页面。格式:Response.Redirect(网址变量或字符串)

返回上一页下一页4.3Response对象例如,可以将当前页面贡定向到外部网站一一网易首页,可以写成:Response.Redirect(“");还可以重定向到当前目录下某个页面,如跳转到login.aspx页面,可以写成:Response.Redirect(“loqin.aspx”);返回上一页下一页4.3Response对象4.3.4End方法End方法用于终止当前处理的页面,并将结果返回浏览器。告知浏览器数据已经全部下载完毕,同时也会使IIS/PwS不再解读后续的HTML标示与程序,而达到结束整个文件的目的。格式:Response.End例如:Response.Write(“大家好!”);Response.End();Response.Write(“欢迎进入我的网站”);只会输出“大家好!”,而不会输出“欢迎进入我的网站”。返回上一页下一页4.3Response对象4.3.5BufferOutput属性BufferOutput属性用于判断是否要将网页内容保存在系统缓冲区中。格式:Response.BufferOutPut设置Response.BufferOutPut=True时(默认值),表小先输出至缓冲区,在完成整个页面的处理后再从缓冲区发送到浏览器。设置Response.BufferOutPut=False时,表小不输出到缓冲区,服务器将内容直接输出到客户端的浏览器。

返回上一页下一页4.3Response对象提示:①在使用Redirect对页面进行了重定向时,应将Buffer0utput设置为True,因为在关闭输出缓冲的情况下,服务器直接将页面输出到客户端,当浏览器已经接收到HTML内容后,是不允许再定向到另一个页面的;②在发送一个较长的页面时应将Buffer0utput设置为False,因为对于一个较长的页面来说,如果使用缓存,将会击要运行很长的时间才递交Web页面,使得用户要长时间等待才能看到页面,而禁止使用缓存,则可以提高网页的显小速度。返回上一页4.4Request对象4.4.1Request对象简介Resquest对象是由类System.Web.HttpRequest来实现的。当客户端向服务器端发出HTTP请求时,所有客户端的请求信息都包含在Request对象中,这些请求信息包括请求的报头、请求方法(如POST或GET、客户端的基本信息、参数等。所以,可以利用Request对象从客户端浏览器来获取用户的信息。Request对象的调用方法是:Request.Collection[“Variable”]或Request[“Variable”]

返回下一页4.4Request对象其中,Collection有QueryString,Form,Cookies,SeverVaiables四种集合。Collection是可以省略的,但这样会降低程序的执行效率。因为,若省略了Collection,则Request对象会依照QueryString,Form,Cookies,SeverVaiables的顺序查找,直到找到Variable所指的关键字并返回其值,若没有发现其值,方法则返回空值(Null)。Request对象的常用属性和方法见表4-7和表4-8。返回上一页下一页4.4Request对象4.4.2Form集合Form集合用来获取客户端通过PosT方法发送到服务器的表单数据。【例4-5】Form集合实例。(1)在Chapter04项目中,新建一个页面4-S.aspxo(2)在页面视图中拖入两个文本框TextBox和一个按钮Button。(3)页面中HTML视图的代码如下:返回上一页下一页4.4Request对象<formid=“forml”method=“post"runat=“server">

用户名:<asp:TextBoxid=“UserName"runat=“server"OnTextChanged=“UserName_TextChanged"></asp:TextBox><br/>密码:<asp:TextBoxid=“UserPassword"runat=“server"TextMode=“Password”OnTextChanged=“UserPassword_TextChanged"Width=“149px"></asp:TextBox><br/><asp:Bu七七on工D=“Buttonl"runat=“server"onclick=“ButtonlClick"text=“提交”/></form>返回上一页下一页4.4Request对象(4)双击“提交”按钮,在Buttonl_Click事件中编写如下代码:protectedvoidButtonlClick(objectsender,EventArqse){stringstrname=Request.Form[“userName"];stringstrpass=Request.Form[“userPassword"];Responce.write(“你的用户名为"+strname+”<br>";Responce.write(“你的密码为"+strpass+”<br>";}返回上一页下一页4.4Request对象(5)运行程序,效果如图4-4所示。在输入用户名和密码后,单击“提交”按钮,可在页面中显示用户提交的信息,如图4-5所示。程序说明:在输入用户名和密码后,单击“提交”按钮时,将触发Buttonl_Click事件,在事件中通过Request.Form[“变量名”]获取用户输入的信息,然后使用Response.Write将客户端获取的值显示在浏览器中。返回上一页下一页4.4Request对象4.4.3QueryString集合QueryString集合可以用于获取客户端通过GET方法传送的表单数据,在例4-5中如果把HTML单中的Method属性值由POST改为GET,则在Buttonl_Click中就应使用Request.QueryString![“变量名”]来获取输入的内容。但这样传送的内容会显小在地址中,被人看到,非常不安全,并且地址栏的长度有限,不能传递过多的信息,因此,在传递内容不多而目保密性不高的情况下可以使用GET方法。返回上一页下一页4.4Request对象一般情况下,不使用QueryString传递表单信息,而是用来获取URL查询字符串中变量的值。例如,在客户端有如下请求:<ahref=“buy.aspx?id=1012&paqe=3”>购买</a>在buy.aspx中可以使用Request.QueryString[“id”]和Request.QueryString[“page"]来传递购买商品的ID和Page对应值。返回上一页下一页4.4Request对象4.4.4ServerVariable集合ServerVariable集合可以用来获取有关服务器的一些信息和用户发送请求时浏览器通过报头传送的一些信息,如IP地址、端口号等。使用格式如下:Request.ServerVariables[“环境变量名称”]常用环境变量见表4-9.[例4-6]显示环境变量值。效果如图4-6所示,新建一个页面在Page_Load中输入如下代码:返回上一页下一页4.4Request对象返回protectedvoidPaqeLoad(objectsender,EventArqse)Response.write(“工P地址是:”+Request.gerverVariables[“REMOTE_ADDR"]+“<br>");Response.Write(“浏览器是:”+Request.ServerVariables[“HTTP_USER_AGENT"〕+”<br>");Response.Write(“服务器的主机名是:”+Request.ServerVariables["SERVER_NAME"+“<br>");Response.Write(“服务器的协议是:”+Request.ServerVariables[“SERVER_PROTOCOL"+“<br>");上一页4.5Cookie对象4.5.1Cookie对象简介Cookie对象是由类System.Web.HttpCookie来实现的。Cookie是服务器发送到客户端浏览器的文本串,可以在客户的硬盘上长期保存信息。每个网站都可以有自己的Cookie,可以随时读取,不过每个网站只能读取自己的Cookie。当用户首次访问一个网站时,应用程序会将请求的页面及一个包含日期和时间的Cookie信息发送给用户,这个Cookie会保存在用户硬盘的某个文件夹下。当用户下一次再访问该网站时,浏览器就会读取用户的硬盘查找与该URL相关联的Cookie。返回下一页4.5Cookie对象

Cookie在使用时有以下一些限制。①大多数浏览器会将Cookie的存储大小控制在4096个字节以内,因此,最好用Cookie来存储少量数据,如存储用户ID之类的标识符。②浏览器限制了每个站点可以在用户计算机上存储的Cookie数量。大多数浏览器只允许每个站点存储20个Cookie;如果试图存储更多Cookie,则最iu的Cookie便会被丢弃。有些浏览器还会对它们将接受的来自所有站点的Cookie总数作出绝对限制,通常为300个。③还有一种限制是用户设置的,用户可以设置自己的浏览器拒绝接受Cookie。返回上一页下一页4.5Cookie对象

Cookie分为永久性Cookie和非永久性(会话)Cookie。永久性Cookie是永久性地存在于客户的硬盘上,并目在指定过期日期之前一直可用。非永久性(会话)Cookie是临时性的,只在浏览器打开时存在。如果在创建Cookie时,没有设置Cookie的有效期,它将是一个非永久性Cookie,不会存储在用户的硬盘上,而是将会作为用户会话信息的一部分进行维护。当用户关闭浏览器时,Cookie便会被丢弃。这种非永久性Cookie很适合用来保存只需短时间存储的信息,或者保存由于安全原因不应该写入客户端计算机上的磁盘的信息。例如,如果用户在使用一台公用计算机,并目不希望将Cookie写入该计算机的磁盘中,这时就可以使用非永久性Cookie。返回上一页下一页4.5Cookie对象4.5.2Cookie对象的设置利用Response对象的Cookie方法可以设置Cookie的值。Cookie对象常用属性见表4-10。

Name属性:Name属性用来指定一个Cookie的名称。Cookie是按名称进行存储的,每个必须有一个唯一的名称,以便以后从浏览器读取Cookie时可以识别它。当设置了两个名称相同的Cookie时,后保存的将覆盖前一个。

返回上一页下一页4.5Cookie对象Value属性:用来指定Cookie中保存的值oCookie中的值是以字符串的形式进行保存的,因此指定Value属性时,若不是字符串类型的要进行类型转换。

Expires属性:用来指定Cookie的过期日期和时间。系统预设给Cookie对象的有效时间是1000min,可以在程序中使用Expires属性自行设定有效日期。[例4-7]设置Cookie的值。代码如下:返回上一页下一页4.5Cookie对象

程序说明:①本例中分别使用了两种不同的方法来添加userName和userAge两个Cookie,有效期均为30天,userName是使用Response.Cookies直接设置的,可以通过这种方式向Cookies集合添加值,因为Cookies是从NameObjectCollectionBase类型的专用集合派生的,userAge是先创建了一个HttpCookie类型的对象实例,再通过Response.Cookies.Add方法将其添加到Cookies集合,这两种方法都可以向客户端浏览器写入一个Cookie;返回上一页下一页4.5Cookie对象

②所有Cookie的值都存储为字符串,因此,userAge值为20应转换为String。[例4-8]设置多值Cookie。多值Cookie就是可以在一个Cookie中存储多个值(子键)。在例4-7中,设置了userName和userAge两个Cookie,每个Cookie中只存储了一个值,分别用来存储用户的姓名和年龄。也可以设置一个名为userlnfo的多值Cookie,其中包含两个子键userName和userAge。实现代码如下:返回上一页下一页4.5Cookie对象返回protectedvoidPaqeLoad(objectsender,EventArqse){//方法:直接设置CookieResponse.Cookies["userName"].Value=”李明”;Response.Cookies["userName”〕.Expires=DateTime.Now.AddDays(30);上一页下一页4.5Cookie对象返回//方法二:使用HttpCookie类刑的对象实例设置CookieHttpCookieuCookie=newHttpCookie("userAge");uCookie.Value=20.ToString();uCookie.Expires=DateTime.Now.AddDays(30);Response.Cookies.Add(uCookie);}上一页下一页4.5Cookie对象4.5.3Cookie对象的读取

当浏览器向服务器发出请求时,该服务器的Cookie会随请求一起发送。可以利用Request对象的Cookie来获取Cookie的值。

[例4-9]读取单值Cookie。读取名为userName的Cookie值,并显小在Label控件中。代码如下:返回上一页下一页4.5Cookie对象返回protectedvoidPaqeLoad(objectsender,EventArqse){//方法:直接设置CookieResponse.Cookies[“user工nfo"][“userName"〕=”李明”;Response.Cookies[“user工nfo"〕[“userAge”〕=20.ToString();Response.Cookies[“userinfo"〕.Expires=DateTime.Now.AddDays(30);//方法二:使用HttpCookie类刑的对象实例设置CookieHttpCookieuCookie=newHttpCookie(“userinfo");上一页下一页4.5Cookie对象ucookie.Value["userName"]=”李明”;ucookie.Value["userage"]=20.tostring()ucookie.expire=datatime.now.adddays(30);Responcecookie..Add(uCookie);}程序说明:在读取Cookie值之前,应先判断Cookie是否存在。如果该Cookie不存在,将会收到Nu1lReferenceException异常。[例4-10]读取多值Cookie。代码如下:返回上一页下一页4.5Cookie对象返回protectedvoidPaqeLoad(objectsender,EventArqse){//方法一if(Request.Cookies[“userName”〕!=null)Labell.Text=Server.HtmlEnoode(Request.Cookies["userName”].Value//方法二if(Request.Cookies[“userAge"]!=null){HttpCookieaCookie=Request.Cookies[“userAge”〕;Label2.Text=Server.HtmlEncode(uCookie.Value);}}上一页下一页4.5Cookie对象4.5.4Cookie对象的修改和删除

Cookie的值不能直接修改,而是创建一个同名的Cookie,并把该Cookie发送到浏览器,覆盖客户机上旧的Cookie。同样,尤法直接删除一个Cookie,可以通过修改一个Cookie的有效期为过去的某个时间,当浏览器检查Cookie的有效期时,就会删除这个已过期的Cookie。返回上一页4.6Application对象4.6.1Application对象简介Application对象是由类System.Web.HttpApplicationState来实现的。Application对象,又称为应用程序对象,它用来在所有用户间共享信息,并可以在Web应用程序运行期间持久的保持数据。当客户端第一次访问ASP.NET应用程序中的任何URL资源时都会创建一个Application对象。创建成功后,在整个应用程序中都C7}以访问该对象的值,直到应用程序结束。

返回下一页4.6Application对象Application对象存储在服务器的内存中,与在数据库中存储和检索信息相比,它的执行速度更快,因此非常适合存储那些数量少、不随用户的变化而变化的常用数据。但是要注意,正是因为Application对象存储在服务器的内存中,每当停止或重新启动应用程序时,Application对象中的内容将会丢失。Application对象常用属性及方法见表4-11和表4-12。返回上一页下一页4.6Application对象4.6.2Application对象的创建与使用Application对象是通过变量来存储和维打‘值的,创建后,变量可以被所有用户共享,可以在应用程序的所有页面中访问它。创建和使用Application对象的格式如下:Application[“变量名”]=变量值;//创建Application对象变量变量=Application[“变量名”];//使用Application对象变量。注意:Application对象返回的变量将是object对象,用户需要进行相应的类型转换。返回上一页下一页4.6Application对象4.6.3Application对象的方法1.锁定Application对象Application对象是对所有用户共享的。在一个ASP.NET应用程序中,如果同时访问的用户很多,就可能出现很多用户同时修改某一个Application变量的情况,这样将会造成修改时争用、死锁或访问冲突等问题。为了避免这些问题的出现,可以使用Lock和Unlock方法。在对Application对象进行修改时,先使用Lock方法将其锁定,禁止其他用户对其进行返回上一页下一页4.6Application对象修改。当修改完之后,再使用Unlock方法解除对Application对象的锁定。这样就可以确保在同一时刻只有一个用户可以修改和存储Application对象中的变量。Lock方法和Unlock方法的语法格式如下:Application.LockApplication.Unlock[例4-11]使用Application对象实现计数功能。效果如图4-7所示。程序代码如下:返回上一页下一页4.6Application对象返回protectedvoidPaqeLoad(objectsender,EventArqse){if(Application[“Count"]==null){Application[“Count"]=1;{elseApplication.Lock();Application[“Count"]=(工nt32)Application[”Count"]+l;Application.unLock();}Responce.Write“当前的计数为:"+Application["Count"].ToStrinq());}上一页下一页4.6Application对象程序说明:本例使用了Lock和Unlock方法,在同一时间内只能有一个用户修改Count变量。重新浏览或刷新网页时,Count变量会不断祟加计数。Count变量不会因关闭网页而消失,这是由于Application对象被存储在服务器的内存中,但是当服务器重新启动时,Count变量信息就会丢失。返回上一页下一页4.6Application对象2.删除Application对象当Application对象中的某些变量不再使用时,可以将其删除,这样可以节省服务器的资源。删除指定的变量的方法:Application.Remove(“变量名”);删除全部变量的方法:Application.RemoveAll();返回上一页下一页4.6Application对象4.6.4Application对象的事件Application对象有两个事件,OnStart事件和OnEnd事件。Application_OnStart事件是在Application对象开始时被触发,并A只在第一个用户的第一次请求时触发一次。它卞要用于初始化变量、创建对象和运行其他代码。Application_OnEnd事件是在整个Application对象结束时才被触发。当它被触发时应用程序的所有变量也相应被取消。Application对象的Application_OnStart和Application_OnEnd事件过程只能在Global.asax文件中创建。Global.asax文件会在后面的章节中介绍。返回上一页4.7Session对象4.7.1Session对象简介Session对象是由类System.Web.SessionState.HttpSessionState来实现的。Session对象,又叫会话对象,用来记载特定客户的信息。即使该客户从一个页面跳转到另一个页面,Session信息仍然存在,客户在该网站的任何一个页面都可以存取Session信息。返回下一页4.7Session对象当用户打开浏览器窗口,并输入一个合理的地址后,一个会话就创建了。当服务器确认浏览器窗日己关闭,则会话结束。若浏览器窗日的内容由于长时间的不更新,超过了失效时间,也会自动结束会话。

Session对象和Application对象的区别在于:每个应用程序只有一个Application对象,被所有用户所共享;而每个应用程序可以有多个Session对象,应用程序的每个访问用户都有自己独享的一个Session对象。Session对象的常用属性和方法见表4-13和表4-14。返回上一页下一页4.7Session对象4.7.2Session对象的创建与使用Session对象也是通过变量来存储和维护值的。它与Application对象存储信息的作用范围是完全不同的。Application对象存储的是共享信息,而Session对象存储的信息是局部信息,会随着用户不同而不同。Session对象卞要用于存储在一定生存周期内某个用户的个人信息。创建和使用Session对象的格式如下:

返回上一页下一页4.7Session对象Session[“变量名”〕=变量值;//创建Session对象变量变量=Session[“变量名”];//使用Session对象变量。住意:Session对象返回的变量将是object对象,用户需要进行相应的类型转换[例4-12]使用Session对象实现网页间的数据传递。返回上一页下一页4.7Session对象(1)创建一个名为4-12.aspx的网页文件,并向该窗体中拖入一个Button控件和一个TextBox控件。(2)在Buttonl_Click事件添加如下代码:protectedvoidButtonlClick(objectsender,EventArgse){Session[“name"]=textBOXl.text;//创建Session变量,用来存储TeXtBox1中的数据Response.Redirect(“4_12_2.aspx");//向目标页而传递数据}返回上一页下一页4.7Session对象(3)新建一个目标页面命名为4-12_2.aspx,并向该窗体中拖曳一个Label控件。在Page_Load事件中添加如下代码:protectedvoidPageLoad(objectsender,EventArgse){Labell.Text=Session[“name"〕.ToString();//从源页面中接收数据,并显示出来Session.Remove(“name";//清除创建的Session变量}返回(4)启动运行,在文本框中输入要传递的数据信息,单击Button按钮发送,如图4-8所示,显示接收到的信息如图4-9所示。上一页下一页4.7Session对象4.7.3Session对象的事件Session对象有Session_OnStart和Session_OnEnd的启动和结束时的运行过程。在一个Session开始时,Session结束时,Session_OnEnd事件被触发。两个事件,它们分别用于Session对象Session_OnStart事件被触发:而存一个Session对象的事件由Global.asax文件管理。返回上一页4.8Server对象4.8.1Server对象简介Server对象是由类System.Web.HttpServerUtility来实现的。在ASP.NET中,当处理web服务器上的特定任务,特别是一些与服务器的环境和处理活动有关的任务时,击要用到Server对象。Server对象通过属性和方法来访问Web服务器,从而实现对数据、网页、外部对象、组件的管理。Server对象的常用属性和方法见表4-15和表4-16。返回下一页4.8Server对象4.8.2ScriptTimeout属性ScriptTimeout属性用来设置或查看请求超时时间,默认时间为90秒。如果没有特别的说明,所有文件都必须在这一时间范围内执行完成,若没有执行完毕,就自动停止执行,这样可以防止某些可能进入死循环的程序导致服务器资源的大量消耗。作为网站的管理员,可以根据大部分文件所需要的时间,以及系统的负荷来设定这一时间长度。修改格式如下:Server.ScriptTimeout=300;这样,可以把最长执行时间设置为300秒。返回上一页下一页4.8Server对象4.8.3Execute方法和Transfer方法Execute方法用来停止执行当前网页,转到新的网页执行,执行完毕后返回原网页,继续执行Execute方法后面的语句。而Transfer方法将停止执行当前网页,转到新的网页执行,执行完新网页后,不再返回原网页执行。

[例4-13]Execute方法和Transfer方法的比较。

(1)新建两个网页文件:4-13.aspx和4-13_2.aspx。(2)在4-13.aspx的Page_Load事件中输入如下代码。返回上一页下一页4.8Server对象protectedvoidPaqe_Load(objectsender,EventArgse){Response.Write(“执行Execute方法!<br>");Server.execute(“4_13_2.aspx");Responce.Write(”返回原页而继续执行以后的代码!”);}(3)在4-13_2.aspx的Page_Load事件中输入如下代码。protectedvoidPaqe_Load(objectsender,EventArgse){Response.Write(“进入新页面!!”);}返回上一页下一页4.8Server对象(4)运行程序的结果如图4-10所示。可以看到执行Execute方法后,程序仍回到原页面4-13.aspx继续执行。(5)修改4-13.aspx的Page_Load事件代码如下:protectedvoidPage_Load(objectsender,EventArgse){Response.Write(“执行transfer方法!<br>");Server.transfer(“4_13_2.aspx");Response.Write(“返回原页而继续执行以后的代码!”);}返回上一页下一页4.8Server对象(6)运行程序的结果如图4-11所示。可以看到执行Transfer方法后,程序不会返回原页面4-13.aspx.返回上一页下一页4.8Server对象4.8.4HtmlEncode方法和HtmlDecode方法当用户击要在网页上显小HTML标记时,如果在网页中直接输出则会被浏览器解释为HTML的内容,所以要通过Serve:对象的HtmlEncode方法将它编码再输出;而要将编码后的结果译码回原本的内容,则使用HtmlDecode方法。[例4-14]使用HtmlEncode方法和HtmlDecode方法。在Page_Load事件中输入如下代码。返回上一页下一页4.8Server对象protectedvoidPaqe_Load(objectsender,EventArqse){Response.Write(“初始输入:”+“<b>HTML编码</b>”);Response.Write(“<br>HtmlEncode方法:”+Server.HtmlEncode(“<b>HTML编码</b>”));Response.Write(“<br>HtmlDecode方法:”+Server.HtmlDecode(“<b>HTML编码</b>”));}返回运行结果如图4-12所示。上

温馨提示

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

最新文档

评论

0/150

提交评论