第十讲 ASP.NET内置对象(一)
教学目的:
一,ASP.NET内置对象概述二,Response对象的常用方法三,Request对象的常用方法教学重点:
一,Response对象的主要属性和方法二,Request对象的主要属性和方法一,ASP.NET内置对象概述
ASP.NET内置了 Response,Request、
Server,Application,Session和
Cookie等对象。虽然由于服务器控件技术的使用大大降低了 ASP.NET开发对其内置对象的依赖,但是在某些场合,
这些对象仍然是非常重要的,使用
ASP.NET内置对象实现网站建设中的某些常用功能是非常方便而有效的。
二,Response对象
Response对象的属性和方法
利用 Response对象输出文本文件
利用 Response对象重新定向链接
1,Response对象的属性和方法
Response对象是 HttpResponse类的一个对象,与一个 HTTP响应相对应,通过该对象的属性和方法可以 控制如何将服务器端的数据发送到客户端浏览器 。 如客户端屏幕显示,用户浏览页面的重定向以及在客户端创建 Cookies等。
属性:
Buffer,表明页输出是否被缓冲。
BufferOutput:是否缓冲输出并在完成处理整个页之后将其发送。
Cache,获取 Web页的缓存策略(过期时间、保密性、变化子句)。
Charset,获取或设置输出流的 HTTP字符集。
ContentEncoding:获取或设置内容的编码格式。
ContentType:获取或设置输出流的 HTTP MIME类型。
Expires,获取或设置在浏览器上缓存的页过期之前的 分钟数 。如果用户在页过期之前返回同一页,则显示缓存的版本。提供 Expires
是为了与以前的 ASP 版本兼容。
ExpiresAbsolute:获取或设置将缓存信息从缓存中移除时的绝对日期和时间。提供 ExpiresAbsolute 是为了与以前的 ASP 版本兼容。
Filter:获取或设置一个包装筛选器对象,该对象用于在传输之前过滤 HTTP实体主体。
IsClientConnected:指示客户端是否仍连接在服务器上。
Output:返回输出 HTTP响应流的文本输出。
OutputStream:返回输出 Http内容主体的二进制输出流。
Status:设置返回到客户端的状态栏。
StatusCode:获取或设置返回给客户端的输出的 HTTP状态代码,通过 HTTP状态代码客户端可以知道服务器端的运行情况。
StatusDescription:获取或设置返回给客户端的输出的
HTTP状态字符串。
SuppressContent,是否将 HTTP内容发送到客户端。
方法:
BinaryWrite:将一个二进制字符串写入 HTTP输出流。
Clear:清除缓冲区流中的所有内容输出。
ClearContent:清除缓冲区流中的所有内容。
ClearHeaders:清除缓冲区流中的所有头信息。
Close:关闭到客户端的套接字连接。
End:将当前所有缓冲的输出发送到客户端,停止该页的执行,并引发 Application_EndRequest 事件。
Flush:向客户端发送当前所有缓冲的输出。 Flush方法和
End方法都可以将缓冲的内容发送到客户端显示,但是
Flush与 End的不同之处在于,Flush不停止页面的执行。
9
属性 说明
Buffer 用于获取或者设置一个值,该值可指定是否缓冲输出,并在处理整个响应之后将其发送
BufferOutput 用于获取或者设置一个值,该值指定是否缓冲输出,并在处理整个页之后将其发送
Cache 用于获取 Web页的缓存策略
Charset 获取或者设置输出流的 HTTP字符集
ContentEncoding 获取或者设置输出流的 HTTP字符集
ContentType 获取或者设置输出流的 HTTPMIME类型
Cookies 获取响应 Cookie集合
Filter 获取或者设置一个包装筛选器对象,该对象用于在传输之前修改 HTTP
实体主体
IsClientConnected 获取一个值,通过该值指示客户端是否仍连接在服务器上
Output 启用输出 HTTP响应流的文本输出
OutputStream 启用输出 HTTP内容主体的二进制输出
RedirectionLocation 获取或者设置 HTTP,位置,标头的值
StatusCode 获取或者设置返回给客户端的输出的 HTTP状态代码
SupressContent 获取或者设置一个值,该值可指示是否将 HTTP内容发送到客户端
10
方法 说明
AddFileDependencies 用于将一组文件名添加到文件名集合中,当前响应依赖于该集合
AppendHeader 将 HTTP头添加到输出流
AppendToLog 将自定义日志信息添加到 IIS日志文件中
BinaryWrite 将一个二进制字符串写入 HTTP输入流
Clear 清除缓冲区流中的所有输出
Close 关闭到客户端的套接字连接
End 将当前所有缓冲的输出发送到客户端,停止该页的执行,并引发Application_EndRequest事件
Flush 向客户端发送当前所有缓冲的输出
GetType 获取当前实例的 Type
Redirect 将客户端重定向到新的 URL
Write 将信息写入 HTTP输出流
WriteFile 将指定的文件直接写入 HTTP输出流服务器和客户端脚本综合应用举例
Response.Write("<script
language=javascript>alert('欢迎学习
ASP.NET')</script>")
Response.Write("<script>window.open(
‘Default2.aspx')</script>")
例 1,利用 Response对象输出文本文件
private void Page_Load(object sender,System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
String FileName = Server.MapPath("Readme.txt");
Response.ContentEncoding =
System.Text.UnicodeEncoding.Default;
Response.Write("<h3>利用 Response对象输出文本文件
</h3>");
Response.Write("<hr>");
Response.Write("文件的内容为,<br><br>");
Response.WriteFile(FileName);
}
例 2,利用 Response对象重新定向链接
private void Button1_Click(object sender,
System.EventArgs e)
{
if ((TextBox1.Text != "") &&
(TextBox1.Text.IndexOf("http://")>=0))
{
//如果目标网址不为空,并且包含
“http://” 字符,则跳转
Response.Redirect(TextBox1.Text);
}
}
三,Request对象
Request对象的属性和方法
利用 Request对象获取客户端表单信息
利用 Request对象获取客户端浏览器信息
利用 Request对象获取客户端的机器信息
利用 Request对象获取 HTTP中的信息
1,Request对象的属性和方法
Request对象实际上操作 System.Web命名空间中的
HttpRequest类。当客户发出请求执行 ASP.Net程序时,客户端的请求信息会包装在 Request对象中,
这些请求信息包括请求报头( Header)、客户端的机器信息,客户端浏览器信息,请求方法(如
POST,GET)、提交的窗体信息等。
Request对象主要用来获取客户端的相关信息
属性
AcceptTypes:客户端支持的 MIME接受类型的字符串数组。
ApplicationPath:服务器上 ASP.NET应用程序的虚拟应用程序根路径。
Browser:有关正在请求的客户端的浏览器功能的信息。
ClientCertificate:当前请求的客户端安全证书。
ContentEncoding:或设置实体主体的字符集。
ContentLength,指定客户端发送的内容长度(以字节计)。
ContentType,传入请求的 MIME内容类型。
Cookies:客户端发送的 cookie的集合
CurrentExecutionFilePath:当前请求的虚拟路径。
FilePath:当前请求的虚拟路径。
Form:窗体变量集合。
Headers,HTTP头集合
IsAuthenticated:是否验证了用户。
HttpMethod:客户端使用的 HTTP数据传输方法
(如 GET,POST或 HEAD)。
IsSecureConnection,HTTP连接是否使用安全套接字(即 HTTPS)。
Path:当前请求的虚拟路径。
PhysicalApplicationPath:当前正在执行的服务器应用程序的根目录的物理文件系统路径。
QueryString,HTTP查询字符串变量集合。
PhysicalPath:获取与请求的 URL相对应的物理文件系统路径。
RawUrl:当前请求的原始 URL。
RequestType:客户端使用的 HTTP数据传输方法( GET或
POST)。
ServerVariables:获取 Web服务器变量的集合。
Url:有关当前请求的 URL的信息。
UserAgent:客户端浏览器的用户代理信息
UserHostAddress:客户端的主机地址。
UserHostName:客户端的 DNS名称。
UserLanguages:客户端语言首选项的排序字符串数组。
<form>表单标记
该标记的主要作用是设定表单的起止位置,
并指定处理表单数据程序的 url地址。其基本语法结构如下:
<form action= url method=get|post
name= value onreset=function
onsubmit= function target=window>
</form>
其中 action:用于设定处理表单数据程序 url的地址。这样的程序通常是 ASP应用程序,采用电子邮件方式时,用
action="mailto:你的邮件地址 "。
method:指定数据传送到服务器的方式。有两种主要的方式,当 method=get时,将输入数据加在 action指定的地址后面传送到服务器;当 method=post时则将输入数据按照 HTTP传输协议中的 post传输方式传送到服务器,用电子邮件接收用户信息采用这种方式。( 一般用 post)
name:用于设定表单的名称。 onrest和 onsubmit是主要针对,reset” 按钮和,submit” 按钮来说的,分别设定了在按下相应的按钮之后要执行的子程序。
target:指定输入数据结果显示在那个窗口,这需要与 <frame>标记配合使用 。
2,利用 Request对象获取客户端表单信息
1,Form方法和 QueryString方法使用 Request对象的 Form方法可以在多个 ASP.NET页面间传递消息,它通过使用 POST方法的表格检索传送到 HTTP请求正文中表格元素的值。 Form集合是按请求正文中参数的名称来索引的,Request.Form(element)的值就是请求正文中 element
的值。
Request对象的 QueryString方法可以用来检索 HTTP查询字符串中变量的值,通过发送表格数据或者由用户在其浏览器的地址栏中输入查询都可以生成 HTTP查询字符串。它与 Form集合的区别是,使用 QueryString集合检索 HTTP查询字符串中变量的值时,变量和它的值是可见的。 正因为此,不可以使用它来传递用户密码。另外,一般情况下,也不使用它传递数据量较大的信息。
request.params是一个集合,它依次包括
request.querystring,request.form、
request.cookies和
request.servervariables。
Request.Params 会在 QueryString,Form、
Server Variable 以及 Cookies 找数据,
首先在 QueryString 集合查找数据,如果在 QueryString 找到数据,就返回数据,
如果没有找到就去 Form 集合中查找数据,
找到就返回,否则在往下一下个集合查找数据。
Request.Params是所有 post和 get传过来的值的集合,Request.Form是取 post传值,
Request.QueryString是 get传过来的值
3,利用 Request对象获取客户端浏览器信息
通过 Request对象的 Browser属性可以获得客户端浏览器的信息,该属性实际为一个
HttpBrowserCapabilities对象。
4,利用 Request对象获取客户端的机器信息
通过 Request对象的属性还可以获取客户端的机器信息,例如通过 UserAgent属性获取客户端浏览器的用户代理信息,通过
UserHostAddress属性获取客户端的主机地址,通过 UserHostName属性获取客户端的
DNS名称等。
5,利用 Request对象获取 HTTP中的信息
Request对象 Headers属性包含了 HTTP的头部信息
,下面通过介绍如何获得 HTTP相关的信息。在这个实例中通过 NameValueCollection对象来表示
Headers属性返回的集合,由于
NameValueCollection类包括在
System.Collections.Specialized命名空间中,
因此在程序的开始首先要引入
System.Collections.Specialized命名空间。
NameValueCollection对象的 AllKeys属性可以返回所有键 Key的数组,对于每一个键 Key,可以通过 NameValueCollection对象的 GetValues方法返回该键 Key对应的所有键值。这样通过循环就可以显示 Header属性的全部内容了