1 / 43

第 5 章 基本对象编程

第 5 章 基本对象编程. 5.1 ASP.NET 对象概述 5.2 Page 对象 5.3 Response 对象 5.4 Request 对象 5.5 Server 对象 5.6 Application 对象 5.7 Session 对象 5.8 Cookies 对象 5.9 对象应用实例 5.10 本章小结. 5.1 ASP.NET 对象概述. 语法:

melva
Download Presentation

第 5 章 基本对象编程

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第5章基本对象编程 5.1 ASP.NET对象概述 5.2 Page对象 5.3 Response对象 5.4 Request对象 5.5 Server对象 5.6 Application对象 5.7 Session对象 5.8 Cookies对象 5.9 对象应用实例 5.10 本章小结

  2. 5.1 ASP.NET对象概述 • 语法: 对象名.属性名 上述语法为访问对象属性的格式。 • 语法: 对象名.方法名(参数表) 表5.1 ASP.NET的内置对象 上述语法为访问对象方法的格式 。 • 语法: 对象名_事件名(参数表) 或事件名(参数表) 上述语法为对象事件处理的定义。 ASP.NET事件的处理过程都有以下二个参数: (1) sender As Object (2) e As EventArgs ASP.NET内置的对象主要有七个,如表5.1所示。

  3. 5.2 Page对象 5.2.1 Page对象的属性 Page对象的常用属性列于右表中。

  4. 5.2 Page对象 5.2.2 Page对象的方法 Page对象的方法较多,表列出了常用的方法。 Page对象的常用方法

  5. 5.2 Page对象 5.2.3 Page对象的事件 Page对象的事件列于表中,最主要的事件是Init、Load和UnLoad。 Page对象的主要事件 Web Form事件触发次序 5.2.4 Web控制事件 ASP.NET中事件的触发次序如图所示。

  6. 5.2 Page对象 【例5.1】设计一个ASP.NET网页,该页面被请求时,在浏览器中显示一个选择运动项目的下拉列表;在文本框中输入新增运动项目,点击“增加”按钮后,在下拉列表中将增加该运动项目。设计步骤如下: (1)创建项目WebExamp5_1,将初始页面文件名由WebForm1.aspx改为Main5_1.aspx。 (2)设计程序主页面Main5_1.aspx界面,所包含的控件及属性列于表中。 Main5_1.aspx文件包含的控件及其属性 (3)在Main5_1.aspx的空白处双击,在Main5_1.aspx.vb程序编辑窗口中输入以下代码: Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load If Not IsPostBack Then

  7. 5.2 Page对象 DpSport.Items.Add("足球") DpSport.Items.Add("乒乓球") DpSport.Items.Add("长跑") DpSport.Items.Add("滑冰") End If End Sub (4)编译程序。选择主选单的“生成”“生成解决方案”。 (5)运行程序,结果如图所示。 可选择的运动项目 增加了新运动项目

  8. 5.3 Response对象 Response对象的主要作用是输出数据到客户端,常用属性列于表, Response对象的 常用方法列于表。Response对象的常用属性 Response对象的常用方法

  9. 5.3 Response对象 5.3.1 使用缓冲区(Buffer) 以下是一个操作缓冲区的程序示例: <HTML> <%Response.Write("清除之后的数据<BR>")%> <SCRIPT Language="VB" Runat="Server"> Sub Page_Load(Sender As Object,e As Eventargs) Response.Write("清除缓冲区之前的数据" & "<BR>") Response.Clear()执行的结果 End Sub </SCRIPT> </HTML> 接下来将上述程序代码中加入 “Response.BufferOutput=False”: <HTML> <%Response.Write("清除之后的数据<BR>")%> <SCRIPT Language="VB" Runat="Server"> Sub Page_Load(Sender As Object,e As Eventargs) Response.BufferOutput=False Response.Write("清除缓冲区之前的数据" & "<BR>") Response.Clear()

  10. 5.3 Response对象 End Sub </SCRIPT> </HTML> 这段程序的执行结果如右图所示。 可以发现执行的结果并没有因为使用 Clear方法而将缓冲区的数据清除,这 表示数据是直接输出而没有存放在缓 冲区内。 5.3.2检查使用者的联机状态 【例5.2】下列的程序代码执行可达100000次的循环,在循环中加入对IsClientConnection属性的判断操作;只要Client端离线就终止执行,而Client端的浏览器上也不会出现任何信息。 <SCRIPT Language="VB" Runat="Server"> Sub Page_Load(Sender As Object,e As Eventargs) Dim i As Long For i=0 To 100000 If Response.IsClientConnected=False Then Response.End

  11. 5.3 Response对象 Next Response.Write("执行完毕") End Sub </SCRIPT> 5.3.3地址重定向 【例5.3】使用了TextBox控件让用户输入一个URL,当用户按下“确定”后即可将连接导向 用户输入的UPL地址。本程序界面设计非常简单,这里直接给出程序代码。 <SCRIPT Language="VB" Runat="Server"> Sub BtnOK_Click(Sender As Object,e As Eventargs) Response.Redirect(TxtURL.Text) End Sub </SCRIPT> <HTML><FORM Runat="Server"> 请输入一个URL:<Br> <ASP:TextBox Id="TxtURL" Runat="Server" /> <ASP:Button Id="BtnOK" Text="确定" OnClick= "BtnOK_Click" Runat="Server" /> </FORM></HTML> 程序运行结果如右图所示。

  12. 5.3 Response对象 5.3.4直接输出文本文件 Response对象提供了一个直接输出文字文件的WriteFile方法。若所要输出的文件和执行的网页在同一个目录,只要直接传入文件名称就可以了;若不在同一个目录,则要指定详细的目录名称。 【例5.4】以下程序将与本程序位于同一目录的文本文件“Output.txt”直接输出到网页上。 <SCRIPT Language="VB" Runat="Server"> Sub Page_Load(Sender As Object,e As Eventargs) Response.WriteFile("Output.txt") End Sub </SCRIPT>

  13. 5.4 Request对象 Request对象的主要功能是让服务器端取得客户端浏览器的数据,表列出了常用的属性。 Request对象的常用属性

  14. 5.4 Request对象 Request对象的常用属性 Request对象的常用方法有以下两个: (1) MapPath(virtualPath) (2) SaveAs(filename,includeHeaders) 5.4.1读取表单数据 读取表单数据的方式有以下三种 (1)使用Request的QueryString属性获取表单数据

  15. 5.4 Request对象 (2)使用Request的Form属性获取表单数据 (3) 使用Request对象的Param属性来获取表单数据 在使用时还可以省略QueryString、Form、Param 属性来得到表单的数据。以下是使用 Request对象获取表单数据的例子: Request.Querystrng("username") '以Get方法传送表单数据,服务器端得到表单项username的值 Request.Querystrng("userID") '以Get方法传送表单数据,服务器端得到表单项userID的值 Request.Form("username") '以Post方法传送表单数据,服务器端得到表单项username的值 Request.Form("userID") '以Post方法传送表单数据,服务器端得到表单项userID的值 Request.Param("username") '服务器端得到表单项username的值 Request.param("userID") '服务器端得到表单项userID的值 Request("username") 省略属性,得到表单项username的值 Request(“userID”) ‘省略属性,得到表单项userID的值 5.4.2 取得客户端浏览器的信息 使用Request对象的Browser属性可取得目前连接Web服务器的浏览器的信息。 【例5.5】使用HttpBrowserCapabilities型态的变量来取得浏览器的部分信息。程序如下: <SCRIPT Language="VB" Runat="Server"> Sub Page_Load(Sender As Object,e As Eventargs) Dim bc As HttpBrowserCapabilities = Request.Browser Response.Write("<P>浏览器信息:</P>") Response.Write("浏览器 = " & bc.Browser & "<BR>") Response.Write("名称 = " & bc.Browser & "<BR>")

  16. 5.4 Request对象 Response.Write("版本 = " & bc.Version & "<BR>") Response.Write("使用平台 = " & bc.Platform & "<BR>") Response.Write("是否为测试版 = " & bc.Beta & "<BR>") Response.Write("是否为16 位的环境 = " & bc.Win16 & "<BR>") Response.Write("是否为32 位的环境 = " & bc.Win32 & "<BR>") Response.Write("是否支持框架(Frame) = " & bc.Frames & "<BR>") Response.Write("是否支持表格(Table) = " & bc.Tables & "<BR>") Response.Write("是否支持Cookie = " & bc.Cookies & "<BR>") Response.Write("是否支持VB Script = " & bc.VBScript & "<BR>") Response.Write("是否支持Java Script = " & bc.JavaScript & "<BR>") Response.Write("是否支持Java Applets = " & bc.JavaApplets & "<BR>") Response.Write("是否支持ActiveX Controls = " & bc.ActiveXControls &"<BR>") End Sub 获取浏览器信息 </SCRIPT> 使用Internet Explorer浏览的 结果如图所示。

  17. 5.4 Request对象 5.4.3 MapPath方法 Request对象的MapPath方法接收一个字符串型的参数,执行以后传回目前网页在服务器上的实际路径。 【例5.6】设文件MyWeb.mdb与本程序文件在同一个目录下,利用Response对象的 MapPath方法获得MyWeb.mdb的实际路径,并用Write方法输出。程序如下: <SCRIPT Language="VB" Runat="Server"> Sub Page_Load(Sender As Object,e As Eventargs) Response.Write(Request.MapPath("MyWeb.mdb")) End Sub </SCRIPT> 运行结果如图

  18. 5.4 Request对象 5.4.4 获得用户上传的参数 使用Request对象的QueryString属性,可根据索引来取得参数值。 【例5.7】下面的程序先定义一个NameValueCollection型变量来接收QueryString的内容, 然后使用一组循环来取得参数名称及内容: <SCRIPT Language="VB" Runat="Server"> Sub Page_Load(Sender As Object,e As Eventargs) Dim shtLoop1, shtLoop2 As Short Dim arA( ), arB( ) As String Dim colA As NameValueCollection colA=Request.QueryString arA = colA.AllKeys '取得全部的键值并存到数组arA中 For shtLoop1 = 0 To UBound(arA) Response.Write("参数名:" & arA(shtLoop1)) arB = colA.GetValues(shtLoop1) '利用外循环的索引来取得参数内容并存到一个数组中 For shtLoop2 = 0 To UBound(arB) Response.Write(" 内容:" & arB(shtLoop2) & "<BR>") Next shtLoop2 Next shtLoop1 End Sub </SCRIPT>

  19. 5.4 Request对象 由于AllKeys方法和GetValues方法的传回值都是数组,所以必须 说明两个数组来接收所传递的值。图给出了该程序在浏览器的地址 栏中输入“http://localhost/11.aspx?R=1&S=2”后的执行结果 获得参数值

  20. 5.5 Server对象 Server对象有以下两个属性: (1) MachineName (2)ScriptTimeout 表列出了Server对象的常用方法。 Server对象的常用方法

  21. 5.5 Server对象 5.5.1 使用COM组件 COM(Component Object Model)是一种对象的格式。 创建COM组件语法: 对象变量= Server.CreateObject("ProgId") 对象变量= Server.CreateObjectStatic("ProgId") 对象变量= Server.CreateObjectFromClsid("ClsId") 【例5.8】建立一个可以存取文件的FileSystemObject对象,并读取文本文件TextFIle.txt, 该文本文件内容为:hello world! 程序如下: <SCRIPT Language="VB" Runat="Server"> Sub Page_Load(Sender As Object,e As Eventargs) Dim fsoA As Object Dim Content As String Dim objFile As Object fsoA=Server.CreateObject("Scripting.FileSystemObject") objFile=fsoA.OpenTextFile(Server.MapPath("TextFile.txt"),1,False) If Not objFile.AtEndOfStream Then Content=objFile.ReadAll Content=Replace(Content,Chr(13),"<Br>") Response.Write(Content)

  22. 5.5 Server对象 End If End Sub </SCRIPT> 上述程序建立一个名为fsoA的FileSystemObject对象,然后用fsoA对象的OpenTextFile方法来打开文本文件TextFile.txt。 5.5.2 HtmlEncode和HtmlDecode方法 【例5.9】下列程序使用Server对象的HtmlEncode方法将“<B>HTML内容</B>”编码后输出至浏 览器,再利用HtmlDecode方法将把编码后的结果译码还原: <SCRIPT Language="VB" Runat="Server"> Sub Page_Load(Sender As Object,e As Eventargs) Dim strHtmlContent As String strHtmlContent=Server.HtmlEncode("<B>HTML 内容</B>") Response.Write(strHtmlContent) Response.Write("<P>") strHtmlContent=Server.HtmlDecode(strHtmlContent) Response.Write(strHtmlContent) End Sub </SCRIPT> 程序运行结果见右图

  23. 5.5 Server对象 5.5.3 UrlEncode和UrlDecode方法 【例5.10】下列程序使用两个HtmlAnchor对象来比较编码传递和未编码的结果,传递的参数 内容是“a# @ #b”。 <HTML> <A Href="http://localhost/2.aspx?data1=a# @ #b">未编码的参数内容</A><BR> <A Href=“http://localhost/2.aspx?data1=<%Response.Write(Server.UrlEncode(”a# @ #b“))%>”>编码过的参数内容</A> </HTML> 运行结果如图所示。 可见对URL地址中的特殊字 符需进行编码才可正确传递。

  24. 5.6 Application对象 Application对象的用途是记录整个网站的信息, 语法: Application("变量") = "变量内容" Application("对象名") = Server.CreateObject(ProgId) 表分别列出了Application对象的常用属性和方法。 Application对象的常用属性 Application对象的常用方法

  25. 5.6 Application对象 5.6.1 存取Application对象变量值 语法: 变量 = Application("变量名称") Application(“变量名称”) = 表达式 【例5.11】向Application对象中添加三个变量并赋值,三个变量的值分别为“Value1”、“Value2” 和“Value3”。通过循环显示这三个Application变量的名字和值,显示完以后清除。 <SCRIPT Language="VB" Runat="Server"> Sub Page_Load(Sender As Object,e As Eventargs) Dim shtI As Short Application.Add("App1","Value1") '向Application对象中添加三个变量并赋值 Application.Add("App2","Value2") Application.Add("App3","Value3") For shtI=0 To Application.Count-1 '显示三个Application变量名和值 Response.Write("变量名:" & Application.GetKey(shtI) ) Response.Write(" ,变量值:" & Application.Item(shtI) & "<P>") Next Application.Clear() '清除Application对象变量 End Sub </SCRIPT>

  26. 5.6 Application对象 上述程序利用Application的Add()方法,向Application对象中添加三个值分别为"Value1"、 “Value2“和”Value3”的变量。程序运行结果如图所示。 Application变量的存取 5.6.2 锁定Application对象 语法: Application.Lock Application("变量") = 表达式 Application.UnLock 【例5.12】一个简单计数器程序,在 ASP.NET网页每执行一次,Counter变量 值就加1,在累计之前,先锁定Application 对象,让其他人无法使用此对象,待累计完成后再解除所定。 <SCRIPT Language="VB" Runat="Server"> Sub Page_Load(sender as Object, e as Eventargs) Application.Lock() '锁定,不允许其他用户修改变量 Application.Set("Counter", Application("Counter") + 1) '访问计数增加1 Application.UnLock() '开锁,允许其他用户修改变量 myCounter.Text = "您是第 " & Application("Counter") & " 位访客" End Sub </SCRIPT> <HTML><BODY> <Asp:Label Runat="Server" Id="myCounter" /> </BODY></HTML>

  27. 5.6 Application对象 5.6.3 Application对象的事件 Application对象有以下四个事件: (1) OnStart事件:在整个ASP.Net应用首先被触发的事件,也就是在一个虚拟目录中 第一个ASP.Net程序执行时触发。 (2)      OnEnd事件:在整个应用停止时被触发(通常发生在服务器被重启/关机时)。 (3)    OnBeginRequest事件:在每一个ASP.Net程序被请求时就发生,即客户每访问 一个ASP.Net程序时,就触发一次该事件。 (4)      OnEndRequest事件:ASP.NET程序结束时,触发该事件。 以下是一个Global.asax文件的示例。 <SCRIPT Language="VB" Runat="Server"> Sub Application_OnStart(sender As Object, e As Eventargs) Application.Add("count",0) End Sub Sub Application_OnEnd(sender As Object, e As Eventargs) Application.RemoveAll() End Sub </SCRIPT>

  28. 5.7 Session对象 Session对象的功能和Application对象一样,都是用来记录浏览器端的变量 。Session对象类名称是HttpSessionState,它和Application对象一样是属于Page对象的成员,所以可以直接使用。 语法: Session("变量名") = 表达式 Session("对象名称") = Server.CreateObject(ProgId) 例如Session(“name”)=“李明”。 表5.12 Session对象的常用属性

  29. 5.7 Session对象 表5.13 Session对象的常用方法 5.7.1设定Session对象变量的有效期限 要更改Session对象的有效期限,只要设定TimeOut属性即可;TimeOut属性的默认值是20分钟。 【例5.13】将Session对象的TimeOut属性设定为1分钟,在程序中加入Session1和Session2两个变 量,它们的值分别为“Value1”和“Value2”。程序运行时将显示两个变量的值,超过1分钟 后,点击“显示”按钮,再查看两个变量的值,此时这两个变量的值将消失。

  30. 5.7 Session对象 设计步骤如下: (1)创建项目WebExamp5_13。 (2)设计界面。 (3)在程序编辑窗口中输入以下Page_Load()时间处理程序代码: Sub Page_Load(Sender As Object,e As Eventargs) If Not Page.IsPostBack Then Session("Session1") = "Value1" '添加一个Session变量Session1 Session("Session2") = "Value2" '添加另一个Session变量Session2 Session.Timeout = 1 '设置Session变量有效期为1分钟 Label1.Text = Format(Now(),"HH:MM:SS") '设置时间的显示格式 Label2.Text = Session("Session1") '显示变量Session1的值 Label3.Text = Session("Session2") End If End Sub 双击Button1按钮,输入以下Button1_Click()事件处理程序代码: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click '当点击[显示]按钮时会执行此程序 Label1.Text = Format(Now(),"hh:mm:ss") Label2.Text = Session("Session1") Label3.Text = Session("Session2") End Sub

  31. 5.7 Session对象 (4)编译程序。选择主选单的“生成”“生成解决方案”。 (5)运行程序,结果如图所示。 显示Session变量值超时后Session变量值消失 5.7.2 Session对象的事件 与Application对象一样,Session对象也有OnStart和OnEnd事件。OnStart事件在客户第一 次从应用程序中请求ASP.NET网页时由ASP.NET调用,OnEnd事件在会话关闭时调用。

  32. 5.8 Cookies对象 Cookies、Session和Application对象很类似,也是一种集合对象,都是用来在保存数据 。 表列出对Application、Section及Cookies对象的比较。 Application、Section和Cookies对象的比较 5.8.1 Cookies对象的基本使用 Cookies对象不属于Page对象,所以用法和Application及Session对象不同。 语法: Response.Cookies(Name As String).Value = 表达式'创建Cookie变量 Response.Cookies.Add(Cookie对象名) '写入Cookie对象 变量 = Request.Cookies(Name As String).Value '读取Cookie变量 例如: Response.Cookies("userName").Value = "mike" Response.Cookies("userName").Expires = DateTime.Now.AddDays(1)

  33. 5.8 Cookies对象 以上语句创建名为userName的Cookie变量,并将该变量的有效期设置为1天。再如: '创建名为CookieExmple的Cookie对象 Dim newCookie As HttpCookie = New HttpCookie("CookieExmple") newCookie.Values("Name") = "Zhang Hua" '添加名为Name、值为Zhang Hua的子键 newCookie.Values("Age") = "21" '添加名为Age、值为21的子键 newCookie.Values("Visited") = DateTime.Now.Date() '添加名为Visited、值为当前日期的子键 newCookie.Expires = DateTime.Now.AddDays(10) '设置Cookie的有效期 Response.Cookies.Add(newCookie) '写入Cookie对象 以上语句首先定义一个HttpCookie类对象newCookie,然后设置其各子键的名称和值, 最后将通过Response对象将数据写入客户端。 表分别列出了Cookies对象的常用属性和方法。 表5.15 Cookies对象的常用属性

  34. 5.8 Cookies对象 Cookies对象的常用方法 表列出了Cookie变量的常用属性。 Cookie变量的常用属性

  35. 5.8 Cookies对象 【例5.14】下列程序新增两个Cookie变量,利用Cookies集合的Item属性和Get方法传 回Cookie变量。 <SCRIPT Language="VB" Runat="Server"> Sub Page_Load(Sender As Object,e As Eventargs) Dim i As Short Response.Cookies("Cookie1").Value="Microsoft Visual Studio.Net" Response.Cookies("Cookie2").Value="ASP.Net" For i=0 To Request.Cookies.Count-1 Response.Write("变量名称:" & Request.Cookies.Item(i).Name & _ "<BR>变量内容:" & Request.Cookies.Get(i).Value & "<BR>") Next Response.Cookies.Clear() End Sub </SCRIPT> 程序的执行结果如图所示。

  36. 5.8 Cookies对象 5.8.2 自定义Cookies对象 除了使用系统预设的Cookies对象外,还可以自行定义属于自己的Cookies对象。 【例5.15】将例5.14程序中的Cookies改为自定义的Cookies对象来操作Cookie变量。 <SCRIPT Language="VB" Runat="Server"> Sub Page_Load(Sender As Object,e As Eventargs) Dim CookieCollection As HttpCookieCollection=New HttpCookieCollection Dim Cookie1 As HttpCookie=New HttpCookie("Cookie1") Dim Cookie2 As HttpCookie=New HttpCookie("Cookie2") Cookie1.Value="Microsoft VisualStudio .NET" Cookie2.Value="ASP.NET" CookieCollection.Add(Cookie1) '将Cookie 对象加入Cookies 集合中 CookieCollection.Add(Cookie2) Dim i As Short For i=0 To CookieCollection.Count-1 Response.Write("变量名称=" & CookieCollection.Item(I).Name & "<BR>") Response.Write("变量内容=" & CookieCollection.Get(I).Value & "<P>") Next CookieCollection.Clear() End Sub </SCRIPT>

  37. 5.8 Cookies对象 程序运行结果如图所示。 使用自定义Cookies 5.8.3 设定Cookie变量的生命周期 Cookie变量的生命周期起始于浏览器被执行时,终止于浏览器结束执行时。 语法: Response.Cookies(CookieName).Expires=#日期# 例如:Response.Cookies(myCookie).Expires=“#2004/12/31#”,设置Cookie变量在2004年12 月31日失效。 若没有指定Expires属性,则Cookie变量将不会被存储。

  38. 5.9对象应用实例 5.9.1 访问计数器 例5.12 设计的简易计数器实例中采用了Application对象,但Application对象记录的变量在 Web 服务器关机或重新启动时自动消失。程序如下: <%@ Import Namespace="System" %> <%@ Import Namespace="System.IO" %> <SCRIPT Language="VB" Runat="Server"> Sub Page_Load(sender as Object, e as Eventargs) '用来访问计数器文件 Dim objReader As New StreamReader(Server.MapPath("Counter.txt")) Dim Counter As Long = objReader.ReadLine() objReader.Close() '判断是否为新创建的Session对象,是才将Counter变量加1,并写入文件 If Session.IsNewSession = True Then Counter += 1 Dim objWriter As New StreamWriter(Server.MapPath("Counter.txt"), False) objWriter.WriteLine(Counter) objWriter.Close() End If '将数字体计数器转换为图形计数器 Dim i As Byte, ICounter As String For i = 1 To Len(Counter.ToString()) ICounter = ICounter & "<Img Src=digit" & Mid(Counter, i, 1) & ".gif>"

  39. 5.9对象应用实例 Next MyCounter.Text="您是第 " & ICounter & " 位访客" LastVisitTime.Text = "最新一次浏览日期时间:" & System.DateTime.Now() End Sub </SCRIPT> <HTML> <Body BgColor="#FFFCC2"> <P><Img Src="last.jpg"></P> <Asp:Label Runat="Server" Id="MyCounter" /><Br> <Asp:Label Runat="Server" Id="LastVisitTime" /> </BODY></HTML> 程序运行结果如图所示。

  40. 5.9对象应用实例 5.9.2 登录检查 使用Application对象和Session对象来实现访客登录检查的功能。本示例共有两个文件: Checkin.aspx和Checkout.aspx。 文件Checkin.aspx的内容如下: <SCRIPT Language="VB" Runat="Server"> Sub Page_Load(Sender As Object,e As EventArgs) If len(Application("applicationName"))=0 Then Application("applicationName") = "登录" Application("pagecount") = 0 End If If not IsPostback Then Application.Lock Application("pagecount") = Application("pagecount")+1 Application.Unlock End If lb1.Text = Application("applicationName") & "<BR>请输入你的姓名<BR>" lb1count.Text = "<BR>该网页已被访问过" & Application("pagecount") & "次<BR>" Session.timeout = 20 End Sub Sub Btn_Click(Sender As Object,e As EventArgs) Session("visitorsName") = visitname.text Response.Redirect("./checkout.aspx")

  41. 5.9对象应用实例 End Sub </SCRIPT> <HTML><Title><%Response.write(Application("applicationName"))%></Title> <FORM Runat="Server"> <ASP:Llabel Id="lb1" Runat="Server"/><Asp:TextBox Id="visitname" Runat="Server" /> <ASP:Button Id="btOK" Text="登录" type=submit OnClick="Btn_Click" Runat="Server"/> <ASP:Label id="lb1count" Runat="server"/> </FORM></HTML> 文件Checkout.aspx的内容如下: <SCRIPT Language="VB" Runat="Server"> Sub Page_Load(Sender As Object,e As EventArgs) If Len(session("visitorsName"))=0 Then lb1message.text = "你不能登录" & "<a href=""./checkin.aspx"">重新登录</a>" BtOk.Visible = False Else lb1message.Text = "你的姓名:" & Session("visitorsName") & "<BR>" lb1message.Text = lb1message.Text & "SessionID:" & Session.sessionID lb1message.Text = lb1message.Text & "<BR>Session Timeout:" & Session.timeout & "分钟<BR>" End If lb1.Text = Application("applicationname") End Sub Sub Btn_Click(Sender As Object,e As EventArgs) Session.abandon

  42. 5.9对象应用实例 End Sub </SCRIPT> <HTML><Form Runat="Server"> <ASP:Label Id="lb1" Runat="Server"/> <ASP:Label Id="lb1message" Runat="Server" Text="请输入你的姓名"/> <ASP:Button Id="BtOK" Text="检查" type=submit OnClick="Btn_Click" Runat="Server"/> <Asp:Label Id="lb1count" Runat="Server"/></Form></HTML> 程序的运行结果分别如图5.18和5.19所示。 首次登录登录成功

  43. 5.10 本章小结 ASP.NET对象是程序设计中最频繁使用的元素之一,它向用户提供基本的请求、响应、会话等处理功能。ASP.NET预定义的对象主要有:Request对象、Response对象、Server对象、Session对象和Application对象。其中前三个对象是最常用的。 Request对象通过HTTP请求可以得到客户端的信息,Request对象控制发送给客户端的信息,而Server对象提供了服务器端的基本属性与方法。 通过本章的学习,读者应熟练掌握和运用各种ASP.NET对象进行基本的程序设计。 习题 1.ASP.NET有哪些常用的内置对象? 2.ASP.NET网页中事件触发次序是什么样的? 3.Request和Response对象的主要用途是什么? 4.Application、Session和Cookie都可以用来记录客户的信息,它们有什 么区别? 5.试述Global.asax文件的作用及其所在的位置。 6.用Session实现密码验证,要求首先建立一个登录页面,实现强制登 录检查。

More Related