第三章.ASP.NET常用的内置对象
一.Page对象
该对象对应Web Form窗体,用来设置与网页有关的各种属性、方法和事件。
1.Page对象的主要属性
属性名
|
值
|
操作
|
说明
|
Application
|
对象
|
只读
|
获取当前Web请求的Application对象
|
Cache
|
对象
|
只读
|
获取与网页所在应用程序相关联的Cache对象
|
ClientTarget
|
字符串
|
读/写
|
客户端浏览器属性
|
EnableViewState
|
布尔值
|
读/写
|
当前网页请求结束时,是否要保持视图状态及其所包含的服务器的视图状态,默认为True
|
ErrorPage
|
URL串
|
读/写
|
当前网页发生未处理的异常时,将转向错误信息网页;其成员未设置此属性值,将显示默认错误信息网页
|
IsPostBack
|
布尔值
|
只读
|
网页加载状况,为True表示网页是由于客户端返回数据而重新被加载,为Flase表示网页被第一次加载
|
IsValid
|
布尔值
|
只读
|
网页上的验证控件是否全部验证成功,为True表示全部验证成功,为False表示至少有一个验证控件验证失败
|
Request
|
对象
|
只读
|
当前网页的Request对象
|
Response
|
对象
|
只读
|
当前网页的Response对象
|
Server
|
对象
|
只读
|
Server对象
|
Session
|
对象
|
只读
|
Session对象
|
Trace
|
对象
|
只读
|
当前网页请求的Trace对象
|
Visible
|
布尔值
|
读/写
|
设置是否显示网页
|
2.Page对象的方法
方法名
|
说明
|
DataBind()
|
将数据源与Web Form上的服务器控件进行绑定
|
Dispose()
|
让服务器控件在释放内存前执行清理操作
|
FindControl(id)
|
在Web Form上搜索标识为id的服务器控件,若找到则返回该控件,若找不到则返回Nothing
|
HasControls()
|
若Page对象中包含服务器控件,则返回Trjue,否则返回False
|
MapPath(VirtualPath)
|
将虚拟路径VirtualPath转换为实际路径
|
3.Page对象的事件
方法名
|
说明
|
Init
|
ASP.NET网页被请求时第一个触发的事件(只在第一次加载时触发,重新加载并不触发)
|
Load
|
网页载入时触发的事件
|
UnLoad
|
网页完成处理且信息被写入浏览器时触发的事件
|
DataBinding
|
当网页上的服务器控件连接数据源时触发的事件
|
Disposed
|
当网页从内存释放时触发的事件
|
Error
|
当网页上发生未处理的异常情况时触发的事件
|
4.例:
<script Language="vb" runat="server">
Sub Page_Init(Sender as Object,e As EventArgs)
Course.Items.Add("语文")
Course.Items.Add("数学")
End Sub
Sub AddCourse(Sender As Object,e As EventArgs)
Course.Items.Add(CourseName.Text)
End Sub
</script>
<form Runat="server">
可选择的课程:<asp:DropDownList Runat="server" id="Course"/>
<br><br>
要增加的课程:<asp:TextBox Runat="server" id="CourseName"/>
<asp:Button Runat="server" Text="增加课程" OnClick="AddCourse"/>
</form>
二.Response对象
1.Response对象的属性
属性
|
操作
|
说明
|
Buffer
|
读/写
|
确定数据发送给客户之前是否要缓冲
|
CacheControl
|
|
是否要用高速缓存输出的内容
|
CharSet
|
读/写
|
字符集名称
|
ContentType
|
读/写
|
指定响应的HTTP内容的MIME类型,缺省值是text/html.
|
Cookies
|
读/写
|
Cookies集
|
Expires
|
|
高速缓存的过期之前的时间
|
ExpiresAbsolute
|
|
高速缓存的过期的日期和时间
|
IsClientConnected
|
只读
|
客户端是否和服务器断开连接(True表示仍然连接中,Fasle表示断开)
|
PICS
|
|
PICS标签
|
Status
|
|
返回服务器的状态
|
2. Response对象的方法
方法
|
说明
|
AddHeader
|
用指定的值给页面添加HTML首标信息
|
AppendToLog
|
为Web服务器添加日志信息
|
BinaryWrite
|
将信息不经过字符集转换,直接输出到页面上
|
ClearHeaders
|
将缓冲区中所有的页面标头清除
|
Close
|
关闭客户端的联机
|
Clear
|
清除缓冲区中的内容
|
End
|
停止当前ASP.NET进程的执行
|
Flush
|
将缓冲中的内容输出
|
Rdirect
|
将浏览器重定向到另一个URL
|
Write
|
向页面输出字符串
|
WriteFile
|
把文件的内容向页面输出
|
三.Request对象
1.Request对象的属性
名称
|
操作
|
说明
|
AcceptType
|
只读
|
客户端支持的MIME接受类型字符串数组
|
ApplicationPath
|
|
返回目前正在执行程序的服务器端的虚拟目录
|
Browser
|
只读
|
检索用户浏览器的功能信息
|
ClientCertificate
|
只读
|
返回有关客户端安全认证的信息
|
Cookies
|
|
Cookies集合,如果使用了Cookie,那么将从这个集合中读到相关的Cookie信息
|
FilePath
|
|
返回目前执行网页的相对地址
|
Files
|
|
返回客户端上传的档案集合
|
Form
|
|
返回有关窗体变量的集合.在发出请求的页面中的所有表单中的控件信息都可以之Form集合中得到
|
Headers
|
只读
|
返回有关HTTP标头的集合
|
HttpMethod
|
只读
|
返回目前客户端HTTP数据传输的方式是Post或Get
|
IsAuthenticated
|
|
返回目前的HTTP联机是否有效
|
IsSecureConnection
|
|
HTTP连接是否使用加密
|
Params
|
|
返回QueryString、Form、ServerVariable以及Cookies全部的集合
|
Path
|
只读
|
被请求页面的完整路径(包括文件名)
|
PathInfo
|
只读
|
当前请求的附加路径,如URL为http://www.x.com/xx/default.aspx/abc,则PathInfo属性为/abc
|
PhysicalApplicationPath
|
|
被请求页面在硬盘上的物理路径名称
|
PhysicalPath
|
|
返回目前请求网页在服务器端的真实路径
|
QueryString
|
|
QueryString集合,通过页面的URL可以得到相关参数的值.这些值可以自动解析并使用.
|
RawUrl
|
|
返回浏览器提交的没有协议和域名的URL地址
|
RequestType
|
|
请求是"Post"还是"Get"
|
ServerVariables
|
|
ServerVariables集合,通过ServerVariables可以得到相关的环境变量,通过获得环境变量的值,可以搜集很多浏览器的关键信息.
|
TotalBytes
|
只读
|
只读属性,它表明用户提交的数据的字节的总数
|
UerHostAddress
|
|
用户机器的IP地址
|
Url
|
只读
|
返回浏览器提交的完整URL地址
|
UserAgent
|
只读
|
返回客户端浏览器的版本信息
|
UserHostAddress
|
只读
|
返回远方客户端机器的主机IP地址
|
UserHostName
|
只读
|
返回远方客户端机器的DNS名称
|
UserLanguages
|
|
返回一个储存客户端机器使用的语言
|
2.Request对象的方法和属性
名称
|
说明
|
BinaryRead
|
得到用户上载的文件的字节数总和
|
MapPath(VirtualPath)
|
将参数virtualPath指定的虚拟路径转化为实际路径
|
SaveAs(filename,includeHeaders)
|
将HTTP请求保存到磁盘,filename是保存文件路径,includeHeaders指定是否保存HTTP标头
|
3.Request对象的集合
名称
|
说明
|
Cookies
|
浏览器的Cookies信息
|
Browser
|
浏览器的能力(支持的功能)
|
Form
|
客户端表单元素中所填入的信息
|
Params
|
QueryString、Form、ServerVariables和Cookies项的数据
|
QueryString
|
URL请求字符串
|
ServerVariables
|
服务器环境变量的值
|
4.环境变量的名称和说明 ServerVariables集合
变量名称
|
说明
|
ALL_HTTP
|
在没有解析成为其他环境变量值前的所有HTTP
|
AUTH_PASSWORD
|
客户在身份验证框中输入的密码
|
AUTH_TYPE
|
表示身份验证的类型
|
AUTH_USER
|
客户在身份验证框中输入的用户名
|
CONTENT_LENGTH
|
检索的字节数
|
CONTENT_TYPE
|
内容类型
|
DATE_GMT
|
当前时间和格林威治表示
|
DATE_LOCAL
|
当前时间的本地表示
|
DOCUMENT_NAME
|
当前文件名
|
DOCUMENT_URI
|
当前文档的虚拟路径
|
HTTP_HOST
|
客户端的主机名称
|
HTTP_USER_AGENT
|
返回客户端浏览器信息,如浏览器类型、版本、操作系统
|
HTTPS
|
浏览器是否以SSL发送,如是,则为ON,否则为OFF
|
LAST_MODIFIED
|
当前文档的最后一次修改日期
|
LOCAL_ADDR
|
服务器IP地址
|
PATH_INFO
|
路径信息,通常是将当前的URL与查询字符串组合在一起
|
PATH_TRANSLATED
|
当前网页的的实际路径
|
QUERY_STRING
|
客户端以Get方式返回的表单数据
|
REMOTE_ADDR
|
发送请求的客户或代理服务器的IP地址
|
REMOTE_HOST
|
发送请求的客户或代理器的主机名称
|
REMOTE_USER
|
已经验证了的客户的用户名
|
REQUEST_METHOD
|
请求方法(是POST还是GET)
|
SCRIPT_NAME
|
当前脚本程序的名称
|
SERVER_NAME
|
服务器的主机名或IP地址
|
SERVER_PORT
|
接受请求的TCP/IP端口(默认值是80)
|
SERVER_PROTOCAL
|
信息检索的协议名称和版本
|
SERVER_SOFTWARE
|
Web服务器的名称和版本
|
URL
|
URL的基本部分,不包括查询字符串
|
5.获取用户浏览器能力信息 Browser集合
名称
|
说明
|
ActiveXControls
|
是否支持ActiveX控件
|
BackgroundSounds
|
是否支持背景音乐
|
Beta
|
是否为测试版
|
Browser
|
用户代理(User-Agent)标头中有关浏览器的描述
|
ClrVersion
|
客户端安装的.NET的CLR版本,若未安装,返回返回值为0,0,-1,-1
|
Cookies
|
是否支持Cookie
|
Frames
|
是否支持框架
|
JavaApplets
|
是否支持Java Applets
|
JavaScript
|
是否支持JavaScript
|
MSDomVersion
|
支持的Microsoft HTML文档对象模型版本
|
Platform
|
客户端操作系统版本
|
Tables
|
是否支持HTML表格
|
VBScript
|
是否支持VBScript
|
VerSion
|
浏览器完整版本号
|
W3CdomVersion
|
支持的W3C XML文档对象模型的版本号
|
Win16
|
客户端是否为Win16结构计算机
|
Win32
|
客户端是否为Win32结构计算机
|
例:Response.Write(Request.Browser.Version)
6.获取Cookie对象 Cookies对象
(1).Cookie对象的属性
属性
|
说明
|
All
|
返回全部的Cookie变量到一个数组中
|
AllKeys
|
返回全部的Cookie变量的名称到一个字符串类型的数组中
|
Count
|
返回Cookie变量的数量
|
Domain=”…”
|
可访问此Cookie对象的域
|
Expires=”#Date#”
|
Cookie对象的终止日期和时间,默认是1000分钟。若设为0,则可实时删除Cookie变量
|
HasKeys
|
Cookie对象中是否含有子键(Subkey)
|
Item
|
以Cookie变量名称或索引值来返回Cookie变量的内容
|
Item(key)=”val”
|
向Cookie对象中添加名为key,值为val的子键;Item(key)可获得子键名为key的键值
|
Name=”…”
|
Cookie对象的名称
|
Value=”…”
|
Cookie对象的值
|
Values(key)=”val”
|
向Cookie对象中添加名为key,值为val的子键;Values(key)可获得子键名为key的键值
|
(2).Cookie对象的方法
方法
|
说明
|
Add
|
新增一个Cookie变量到Cookie集合内
|
Clear
|
将Cookie集合内的变量全部清除
|
Get
|
以Cookie变量名称或索引值返回Cookie变量的值
|
GetKey
|
以索引值来取回Cookie变量名称
|
Remove
|
以Cookie变量名称移除Cookie变量
|
Set
|
更新一个Cookie变量的值
|
(3).例
<Script language="vb" Runat="server">
Sub Page_Load(Sender As Object,e as EventArgs)
'----------------------------写入Cookie对象-------------------------------
Dim newCookie as HttpCookie=New HttpCookie("CookieExmp")'定义并创建名为CookieExmp的Cookie对象
newCookie.Values("Name")="CBW"
newCookie.Values("Age")="100"
newCookie.Expires=DateTime.Now.AddDays(10) '设置Cookie对象的终止日期是当前日期加10天
Response.Cookies.Add(newCookie) '写入Cookie对象
'-----------------------------读取Cookie对象-------------------------------
Dim GetCookie As HttpCookie=Request.Cookies("CookieExmp")
Response.Write("Name:"+GetCookie.Values("Name")+"<br>")
Response.Write("Age:"+GetCookie.Values("Age")+"<br>")
End Sub
</script>
7.获取用户浏览器信息
使用Request对象的Browser属性,其子属性有:
(1).Browser:表示浏览器的名称
(2).MajorVersion:表示浏览器的版本的整数位
(3).Version:表示浏览器的完整版本号
8.例:通过索引获取Get参数名及参数值
<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 ' QueryString属性的类型为NameValueCollection
colA=Request.QueryString
arA = colA.AllKeys ' 取得全部的键值并存到一个数组中
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>
四. Application对象
1. Application对象的属性
属性
|
操作
|
说明
|
All
|
|
返回全部的Application对象变量到一个Object类型的数组
|
AllKeys
|
|
返回全部的Application对象变量名称到一个String类型的数组中
|
AllKeys(index)
|
只读
|
返回下标为index的变量名
|
Contents({name,index})
|
只读
|
Contents集合中名称为name或下标为index的变量值。如,Application.Contents(“cnt”),或简写为Application(“cnt”)。保留它是为了与ASP兼容。
|
Count
|
只读
|
取得Application对象变量的数量
|
Item({name,index})
|
读/写
|
Centents集合内名称为name或下标为index的变量值。如:Application.Item(“cnt”),或简写为Application(“cnt”)
|
StaticObjects(name)
|
读/写
|
StaticObjects集合内的所有对象变量
|
2. Application对象的方法和属性
方法
|
说明
|
Add(name,value)
|
向Contents集合中添加名称为name,值为value的变量
|
Clear
|
清除Contents集合中的所有变量
|
Get({name,index})
|
获取名称为name或下标为index的变量
|
GetKey(index)
|
获取下标为index的变量名
|
Lock
|
锁定Application对象,防止其他用户访问Application对象
|
Remove(name)
|
从Contents集合中删除名称为name的变量
|
RemoveAll
|
清除Contents集合中的所有变量
|
RemoveAt(index)
|
删除contents集合中下标为index的变量
|
Set(name,value)
|
将名称为name的变量值修改为value
|
Unlock
|
撤销对Application对象的锁定,其他用户可以访问Application对象
|
3. Application对象的事件
1).OnStart:在整个ASP.NET应用首先被触发的事件,也就是一个虚拟目录中第一个ASP.NET程序执行时触发
2).OnEnd:与OnStart正好相反,在整个应用停止时被触发,通常发生在服务器被重启/关机时
3).OnBeginRequest:在每一个ASP.NET程序被请求时发生,即客户每访问一ASP.NET程序,就触发一次该事件
4).OnEndRequest:ASP.NET程序结束时,触发该事件
注:
(1).这四个事件前的On均可省略
(2).Application事件只能在Global.asax文件中定义(该文件必须放在Web站点或虚拟目录的主目录下)
4.例:
global.asax文件:
<script language="VB" runat="server">
Sub Application_Start(Sender As Object, E As EventArgs) '每个应用程序启动时执行
End Sub
Sub Application_End(Sender As Object, E As EventArgs) '每个应用程序结束时执行
'我们捎带实现了站点的当前在线人数
dim intOnlineNumber as integer
intOnlineNumber=cInt(Application("ONLINENUMBER"))-1
Application("ONLINENUMBER")=intOnlineNumber
End Sub
Sub Session_Start(Sender As Object, E As EventArgs) '每个会话开始时执行
Application.Lock
intOnlineNumber=cInt(Application("ONLINENUMBER"))+1
Application("ONLINENUMBER")=intOnlineNumber+1
Application.UnLock
End Sub
Sub Session_End(Sender As Object, E As EventArgs) '每个会话结束时执行
End Sub
Sub Application_BeginRequest(Sender As Object, E As EventArgs) '每个页面请求开始时执行
response.write("当前访问的页面是 " + Request.FilePath + "<br>")
'既然我们可以得到FilePAth 则我们只要把这个参数进行详细的各种各样的统计就可以了
End Sub
Sub Application_EndRequest(Sender As Object, E As EventArgs) '每个页面请求结束时执行
End Sub
</script>
使用文件:
<script language="vb" runat=server>
sub Page_Load(o as object,e as eventargs)
Application.Lock()
Application("counter") = CType(Application("counter") + 1, Int32)
Application.UnLock()
end sub
</script>
五.Session对象
1.Session对象的属性
属性
|
操作
|
说明
|
All
|
只读
|
返回全部的Session对象变量到一个数组
|
CodePage
|
|
代码页,用于显示特殊字符的字符集
|
Contents({name,index})
|
只读
|
返回Contents集合中名称为name或下标为index的变量值
|
Count
|
只读
|
返回Session对象变量的个数
|
IsNewSession
|
只读
|
获取Session对象是否与当前请求一起创建
|
IsReadOnly
|
只读
|
获取Session是否为只读,默认为False
|
Item({name,index})
|
读/写
|
以索引值index或变量名name来返回或设定Session
|
Keys
|
只读
|
Contents集合内的所有变量。Keys(index)为获取下标为index的变量值
|
LCID
|
|
位置标志
|
SessionID
|
只读
|
由服务器生成的会话ID,它代表惟一的一次会话
|
StaticObjects(name)
|
读/写
|
包含使用<OBJECT>所标记的会话的所有项目
|
TimeOut
|
读/写
|
返回或设定Session对象变量的有效时间,当联机用户超过有效时间没有动作,Session对象便失效。默认值为20分钟。单位是分钟
|
2. Session对象的方法
方法
|
说明
|
Abandon
|
销毁Session对象并释放它所占用的资源,调用此方法将触发OnEnd事件
|
Add(name,value)
|
新增一个名称为name,值为value的Session对象变量
|
Clear
|
清除所有的Session对象变量
|
CopyTo(array,index)
|
复制Session对象的变量集合到Array指定的数组
|
Remove(name)
|
以变量名称来移除变量
|
RemoveAll
|
清除所有的Session对象变量
|
RemoveAt(index)
|
删除Contents集合中下标为index的变量
|
3.Session对象的事件
OnStart:当浏览器第一次访问ASP.NET网页时,创建Session对象并触发该事件。对同一浏览器,该事件只触发一次,除非发生OnEnd事件或重启浏览器访问ASP.NET网页,否则不会再触发该事件。
OnEnd:在Timeout属性所设置的时间内没有再访问网页,或者调用了Abandon方法都会触发该事件。
4.Session对象的生命周期
Session对象的生命周期始于用户第一次连接到网页,在以下情况之一发生时结束:
1).关闭浏览器
2).断开与服务器的连接
3).浏览者在Timeout属性规定的时间内未与服务器联系
5.例
…
If session(“name”)=nothing then /If(Session["Sex"]==null){…}
Session(“name”)=”cbw”
Response.redirect(“/”) ‘转向网站首页
End if
六.Server对象
名称
|
方法/属性
|
说明
|
MachineName
|
属性
|
机器名
|
ScriptTimeout
|
属性
|
说明页面在超时之前可以运行多长时间
|
CreateObject
|
方法
|
创建一个对象
|
Execute
|
方法
|
用于执行一个子例程或存储过程
|
GetLastError
|
方法
|
检索最后一次发生的错误
|
HTMLEncode
|
方法
|
用于把所有的标记字符转换成等价的没有功能的字符
|
HtmlDecode
|
方法
|
用于把所有的标记字符转换成等价的Html字符
|
MapPath
|
方法
|
得到一个文件的目录路径
|
Transfer
|
方法
|
把原来页面的内置对象的值和对象的状态传递给新的页面
|
URLEncode
|
方法
|
把URL中所有的特殊字符转化成对应的非功能等价内容
|
URLDecode
|
方法
|
URLEncode的逆操作
|