📄 asp05.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>基本对象编程</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body>
<p align="center">第5章 基本对象编程</p>
<p>5.1 ASP.NET对象概述<br>
语法:对象名.属性名<br>
上述语法为访问对象属性的格式。<br>
语法: 对象名.方法名(参数表) <br>
上述语法为访问对象方法的格式 。<br>
语法: 对象名_事件名(参数表) 或 事件名(参数表) <br>
上述语法为对象事件处理的定义。<br>
ASP.NET事件的处理过程都有以下二个参数:<br>
(1) sender As Object <br>
(2) e As EventArgs <br>
ASP.NET内置的对象主要有七个,如下表所示。 </p>
<p align="center"><img src="image/slide5image001.PNG" width="515" height="328"></p>
<p>5.2 Page对象<br>
5.2.1 Page对象的属性 Page对象的常用属性列于下表中。</p>
<p align="center"><img src="image/slide5image002.PNG" width="577" height="198"><br>
<img src="image/slide5image003.PNG" width="581" height="428"></p>
<p>5.2.2 Page对象的方法 Page对象的方法较多,表列出了常用的方法。</p>
<p align="center"><img src="image/slide5image004.PNG" width="576" height="135"><br>
<img src="image/slide5image005.PNG" width="577" height="407"></p>
<p>5.2.3 Page对象的事件 Page对象的事件列于表中,最主要的事件是Init、Load和UnLoad。</p>
<p align="center"><img src="image/slide5image006.PNG" width="600" height="295"></p>
<p>5.2.4 Web控制事件 ASP.NET中事件的触发次序如图所示。</p>
<p align="center"><img src="image/slide5image007.PNG" width="351" height="257"></p>
<p>5.3 Response对象 Response对象的主要作用是输出数据到客户端,常用属性列于表, Response对象的常用方法列于表。</p>
<p align="center"><img src="image/slide5image008.PNG" width="601" height="249"><br>
<img src="image/slide5image009.PNG" width="599" height="308"></p>
<p>5.3.1 使用缓冲区(Buffer) <br>
以下是一个操作缓冲区的程序示例: <br>
<HTML> <br>
<%Response.Write("清除之后的数据<BR>")%> <br>
<SCRIPT Language="VB" Runat="Server"> <br>
Sub Page_Load(Sender As Object,e As Eventargs)<br>
Response.Write("清除缓冲区之前的数据" & "<BR>") <br>
Response.Clear() 执行的结果 <br>
End Sub <br>
</SCRIPT> <br>
</HTML> <br>
接下来将上述程序代码中加入 “Response.BufferOutput=False”: <br>
<HTML> <br>
<%Response.Write("清除之后的数据<BR>")%><br>
<SCRIPT Language="VB" Runat="Server"><br>
Sub Page_Load(Sender As Object,e As Eventargs) <br>
Response.BufferOutput=False<br>
Response.Write("清除缓冲区之前的数据" & "<BR>")<br>
Response.Clear()<br>
End Sub<br>
</SCRIPT><br>
</HTML><br>
这段程序的执行结果如右图所示。可以发现执行的结果并没有因为使用Clear方法而将缓冲区的数据清除,这 表示数据是直接输出而没有存放在缓冲区内。<br>
5.3.2检查使用者的联机状态 <br>
【例】下列的程序代码执行可达100000次的循环,在循环中加入对IsClientConnection属性的判断操作;只要Client端离线就终止执行,而Client端的浏览器上也不会出现任何信息。<br>
<SCRIPT Language="VB" Runat="Server"> <br>
Sub Page_Load(Sender As Object,e As Eventargs)<br>
Dim i As Long <br>
For i=0 To 100000 <br>
If Response.IsClientConnected=False <br>
Then Response.End<br>
Next<br>
Response.Write("执行完毕") <br>
End Sub <br>
</SCRIPT> <br>
5.3.3直接输出文本文件 Response对象提供了一个直接输出文字文件的WriteFile方法。若所要输出的文件和执行的网页在同一个目录,只要直接传入文件名称就可以了;若不在同一个目录,则要指定详细的目录名称。
【例】以下程序将与本程序位于同一目录的文本文件“Output.txt”直接输出到网页上。<br>
<SCRIPT Language="VB" Runat="Server"> <br>
Sub Page_Load(Sender As Object,e As Eventargs)<br>
Response.WriteFile("Output.txt") <br>
End Sub <br>
</SCRIPT></p>
<p>5.4 Request对象 Request对象的主要功能是让服务器端取得客户端浏览器的数据,表列出了常用的属性。 </p>
<p align="center"><img src="image/slide5image010.PNG" width="573" height="482"><br>
<img src="image/slide5image011.PNG" width="574" height="156"><br>
<img src="image/slide5image012.PNG" width="573" height="49"></p>
<p>Request对象的常用方法有以下两个:<br>
(1) MapPath(virtualPath) <br>
(2) SaveAs(filename,includeHeaders) <br>
5.4.1读取表单数据 读取表单数据的方式有以下三种 <br>
(1)使用Request的QueryString属性获取表单数据 <br>
(2) 使用Request的Form属性获取表单数据 <br>
(3) 使用Request对象的Param属性来获取表单数据在使用时还可以省略QueryString、Form、Param 属性来得到表单的数据。以下是使用Request对象获取表单数据的例子:<br>
Request.Querystrng("username") '以Get方法传送表单数据,服务器端得到表单项username的值<br>
Request.Querystrng("userID") '以Get方法传送表单数据,服务器端得到表单项userID的值Request.Form("username")
'以Post方法传送表单数据,服务器端得到表单项username的值Request.Form("userID") '以Post方法传送表单数据,服务器端得到表单项userID的值Request.Param("username")
'服务器端得到表单项username的值 <br>
Request.param("userID") '服务器端得到表单项userID的值<br>
Request("username") 省略属性,得到表单项username的值<br>
Request(“userID”) ‘省略属性,得到表单项userID的值<br>
5.4.2 MapPath方法<br>
Request对象的MapPath方法接收一个字符串型的参数,执行以后传回目前网页在服务器上的实际路径。<br>
【例】设文件MyWeb.mdb与本程序文件在同一个目录下,利用Response对象的 MapPath方法获得MyWeb.mdb的实际路径,并用Write方法输出。程序如下:<br>
<SCRIPT Language="VB" Runat="Server"><br>
Sub Page_Load(Sender As Object,e As Eventargs)<br>
Response.Write(Request.MapPath("MyWeb.mdb")) <br>
End Sub<br>
</SCRIPT><br>
5.5 Server对象 <br>
Server对象有以下两个属性:<br>
(1) MachineName <br>
(2) ScriptTimeout <br>
表列出了Server对象的常用方法。</p>
<p align="center"><img src="image/slide5image013.PNG" width="588" height="408"></p>
<p>5.5.1 使用COM组件 <br>
COM(Component Object Model)是一种对象的格式。创建COM组件语法:<br>
对象变量 = Server.CreateObject("ProgId") <br>
对象变量 = Server.CreateObjectStatic("ProgId") <br>
对象变量 = Server.CreateObjectFromClsid("ClsId") <br>
【例】建立一个可以存取文件的FileSystemObject对象,并读取文本文件TextFIle.txt,该文本文件内容为:hello world! 程序如下:<br>
<SCRIPT Language="VB" Runat="Server"> <br>
Sub Page_Load(Sender As Object,e As Eventargs) <br>
Dim fsoA As Object <br>
Dim Content As String <br>
Dim objFile As Object <br>
fsoA=Server.CreateObject("Scripting.FileSystemObject") <br>
objFile=fsoA.OpenTextFile(Server.MapPath("TextFile.txt"),1,False)<br>
If Not objFile.AtEndOfStream Then <br>
Content=objFile.ReadAll <br>
Content=Replace(Content,Chr(13),"<Br>") <br>
Response.Write(Content) <br>
End If<br>
End Sub<br>
</SCRIPT> <br>
上述程序建立一个名为fsoA的FileSystemObject对象,然后用fsoA对象的OpenTextFile方法来打开文本文件TextFile.txt。<br>
5.5.2 HtmlEncode和HtmlDecode方法 <br>
【例】下列程序使用Server对象的HtmlEncode方法将“<B>HTML内容</B>”编码后输出至浏览器,再利用HtmlDecode方法将把编码后的结果译码还原:<br>
<SCRIPT Language="VB" Runat="Server"><br>
Sub Page_Load(Sender As Object,e As Eventargs)<br>
Dim strHtmlContent As String<br>
strHtmlContent=Server.HtmlEncode("<B>HTML 内容</B>")<br>
Response.Write(strHtmlContent)<br>
Response.Write("<P>")<br>
strHtmlContent=Server.HtmlDecode(strHtmlContent)<br>
Response.Write(strHtmlContent)<br>
End Sub<br>
</SCRIPT> <br>
5.5.3 UrlEncode和UrlDecode方法<br>
【例】下列程序使用两个HtmlAnchor对象来比较编码传递和未编码的结果,传递的参数内容是“a# @ #b”。<br>
<HTML><br>
<A Href="http://localhost/2.aspx?data1=a# @ #b">未编码的参数内容</A><br>
<BR><br>
<A Href=“http://localhost/2.aspx?data1=<%Response.Write(Server.UrlEncode(”a#
@ #b“))%>”><br>
编码过的参数内容<br>
</A> <br>
</HTML><br>
可见对URL地址中的特殊字 符需进行编码才可正确传递。<br>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -