内容来自《ASP.NET网站开发与项目实战(第二版)》,清华大学出版社,张正礼,陈作聪,王坚宁编著
ASP.NET内置对象包括:Response对象、Request对象、Server对象、Session对象、Cookie对象、ViewState对象、Application对象。
Response对象
Response对象可以动态地相应客户端的请求,并将动态生成的响应结果返回给客户端浏览器。Response对象可以实现很多功能,如向客户端输出数据、跳转网页等。Response对象是HttpResponse类的一个实例。该类主要是封装来自ASP.NET操作的HTTP响应信息。
属性
- Buffer
获取或设置一个值,该值指示是否缓冲输出,并在完成处理整个响应之后将其发送。
- BufferOutput
获取或设置一个值,该值指示是否缓冲输出,并在完成处理整个页之后将其发送。
当Response对象的BufferOutput属性为True时,要输出到客户端的数据都暂时存储在缓冲区内,等到所有的事件程序,以及所有的页面对象全部编译完毕后,才将所有的缓冲区中的数据送到客户端的浏览器。
例:新建ASP.NET空Web应用程序。
Default.aspx文件中添加一行代码:
<%Response.Write("缓存已清除<br/>"); %>
Default.aspx.cs中加入:
protected void Page_Load(object sender, EventArgs e)
{
Response.BufferOutput = false;//试试注释掉这行代码的区别
Response.Write("缓存清除前<br/>");
Response.Clear();
}
- Cache
获取Web也的缓存策略(过期时间、保密性、变化子句)。
- CacheControl
将Cache-Control HTTP头设置为Public或Private。
- Charset
为网页提供编码方式。
例:
Response.Charset = "gb2312";
- ContentEncoding
获取或设置输出流的HTTP字符集。
- ContentType。
获取或设置输出流的HTTP MIME类型。
- Cookies
获取响应Cookie集合。
- Expires
获取或设置在浏览器缓存的页过期之前的分钟数。如果用户在页过期之前返回一页,则显示缓存的版本。
- ExpiresAbsolute
获取或设置将缓存信息从缓存中移除时的绝对日期和时间。
- Filter
获取或设置一个包装筛选器对象,该对象用于在传输之前修改HTTP实体主体。
- IsClientConnected
获取一个值,通过该值指示客户端是否仍连接在服务器上。
- Output
启用到输出HTTP响应流的文本输出。
- OutputStream
启用到输出HTTP内容主体的二进制输出。
- RedirectLocation
获取或设置HTTP“位置”标头的值。
- Status
设置返回客户端的Status栏。
- StatusCode
获取或设置返回给客户端的输出的HTTP状态代码。
- StatusDescription
获取或设置返回给客户端的输出的HTTP状态字符串。
- SuppressContent
获取或设置一个值,该值指示是否将HTTP内容发送到客户端。
方法
- BinaryWrite
将一个二进制字符串写入HTTP输出流。
- Clear
清除缓冲区流中的所有内容输出。
- Close
关闭到客户端的套接字连接。
- End
将当前所有缓冲的输出发送到客户端,停止该页的执行,并引发Application_EndRequest事件。
Response.End方法将自动停止输出数据。
例:
for (int i = 1; i <= 100; i++)
{
Response.Write(i);
if (i == 10)
{
Response.End();
}
}
- Flush
向客户端发送当前所有缓冲的输出。
- Redirect
将客户端重定向到新的URL。
例:实现网页跳转。
Response.Redirect("http://www.baidu.com");
Response.Redirect("WebForm1.aspx");
- Write
将信息写入HTTP输出内容流。
- WriteFile
将指定的文件直接写入HTTP内容输出流。
例:
Response.WriteFile(@"F:\1.txt");
Request对象
Request对象是HttpRequest类的一个实例,在HTTP请求期间,检索客户端浏览器传递给服务器的信息,比如后去客户端存储的Cookie信息,获取URL连接串中参数的值等。
属性
- AcceptTypes
获取客户端支持的MIME接收类型的字符串数组。
- ApplicationPath
获取服务器上ASP.NET应用程序的虚拟应用程序根路径。
- Browser
获取有关正在请求的客户端的浏览器功能的信息。
- Cookies
获取客户端发送的Cookies的集合。
- CurrentExceptionFilePath
获取或设置输出流的HTTP字符集。
- FilePath
获取当前请求的虚拟路径。
- Files
获取客户端上载的文件(多部件MIME格式)集合。
- Form
获取窗体变量集合。
- Headers
获取HTTP头集合。
- InputStrem
获取传入的HTTP实体主体的内容。
- Item
后去Cookies、Form、QueryString、ServerVariables集合中指定的对象。在C#中,该属性为HttpRequest类的索引器。
- Path
获取当前请求的虚拟路径。
- PathInfo
获取具有URL扩展名的资源的附加路径信息。
- PhysicalPath
获取与请求的URL相对应的物理文件系统路径。
- QueryString
获取HTTP查询字符串变量集合。
例:
<a href="WebForm1.aspx?params1=出发了">拜拜,我要走了</a>
Response.Write(Request.QueryString["params1"]);
注:用类似方法,可以获取Form、Cookie、ServerVariables的值。调用方法都是Request.Collection["Varaiable"].
Collection包括QueryString、Form、Cookies、ServerVariables四种集合,Variable为要查询的关键字。
使用的方式也可以是Request["Variable"],与Request.Collection["Variable"]的效果是一样的。如果省略了Collection,Request对象就会依照QueryString、Form、Cookies、ServerVariables的顺序查找,直至发现Variable所指的关键字并返回其值,如果没有发现其值,方法则返回空值。
- RawUrl
获取当前请求的原始URL。
- ServerVariables
获取Web服务器变量的集合。
- Url
获取有关当前请求的URL的信息。
方法
- BinaryRead
执行对当前输入流进行指定字节数的二进制读取。
- MapImageCoordinate
将传入图像字段窗体参数影射为适当的x、y坐标值。
- MapPath
为当前请求的URL中的虚拟路径映射到服务器上的物理路径。
- SaveAs
将HTTP请求保存到磁盘。
例:
protected void Page_Load(object sender, EventArgs e)
{
Request.SaveAs("F:/1.txt",true);
}
文档内容:
GET /Default.aspx HTTP/1.1
Connection: keep-alive
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding: gzip, deflate, sdch, br
Accept-Language: zh-CN,zh;q=0.8
Cookie: admin=admin; 3=3; 001=1; 111=1; companycode=__01; 1=1; lname~1!
Host: localhost:49856
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36
Upgrade-Insecure-Requests: 1
- ValidateInput
验证由客户端浏览器提交的数据,如果存在潜在的危险性数据,则引发一个异常。
Server对象
Server对象是HttpServerUtility的一个实例,该对象提供对服务器上的方法和属性的访问。
属性
- MachineName
获取服务器的计算机名称。
- ScriptTimeout
获取或设置请求超时值(以秒计)
例:
protected void Page_Load(object sender, EventArgs e)
{
Response.Write(Server.MachineName);
Response.Write("<br/>");
Response.Write(Server.ScriptTimeout);
}
方法
- ClearError
清除前一个异常。
- CreateObject
创建由对象类型标识的COM对象的一个服务器实例。
- Execute
在当前请求的上下文中执行指定的虚拟路径的处理程序。
- GetLastError
返回前一个异常。
- HtmlDecode
对HTML编码的字符串进行编码,并将解码输出发送到System.IO.TextWriter输出流。
- HtmlEncode
对字符串进行HTML编码,并将解码输出发送到System.IO.TextWriter输出流。
例: 使用HtmlEncode方法将"<B>HTML 内容</B>"编码后输出到浏览器,再利用HtmlDecode方法将编码后的结果还原。
protected void Page_Load(object sender, EventArgs e)
{
var str1 = Server.HtmlEncode("<B>HTML 内容</B>");//编码
Response.Write(str1);
Response.Write("<p>");
var str2 = Server.HtmlDecode(str1);
Response.Write(str2);
}
- MapPath
返回与Web服务器上的指定虚拟路径相对应的物理文件路径。
- Transfer
终止当前页的执行,并为当前请求开始执行新页。
- UrlDecode
对字符串进行解码,该字符串为了进行HTTP传输而进行编码并在URL中发送到服务器。
- UrlEncode
编码字符串,以便通过URL从Web服务器到客户端进行可靠的HTTP传输。
Server对象的URLEncode方法根据URL规则对字符串进行编码。
URL规则是当字符串数量以URL的形式传递到服务器时,在字符串中不允许出现空格,也不允许出现特殊字符。
例:
Response.Write(Server.UrlEncode("http://www.baidu.com"));
结果:
http%3a%2f%2fwww.baidu.com
- UrlPathEncode
对URL字符串的路径部分进行URL编码,并返回已编码的字符串。
先学了这些,继续跟进,请等待...