Request对象
Page类的一个属性.
public HttpResponse Response{get;}
Request对象常用属性
1. Request.ApplicationPath
获得服务器的虚拟目录路径,例如页面路径为:http://localhost:29723/WebSite2/Default.aspx,获得的结果为/WebSite2。
2. Request.AppRelativeCurrentExecutionFilePath
获得当前页面相对根目录的路径,例如:~/Default.aspx。
3. Request.Browser.ClrVersion
获得服务器的.NET Framework版本.
4. Request.ContentEncoding
获得页面编码方式的对象表示。
5. Request.CurrentExecutionFilePath
获得当前请求的虚拟路径,例如:/WebSite2/Default.aspx
6. Request.FilePath
获得当前文件的虚拟路径,例如:/WebSite2/Default.aspx。跳转方式不一样时该参数与上一个参数可能存在差异。
7. Request.HttpMethod
获得客户端请求服务器页面的方式。GET/POST等等。
8. Request.Path
获得当前页面的相对虚拟路径。
9. Request.PathInfo
获得虚拟目录的服务器磁盘绝对路径。
10. Request.PhysicalApplicationPath
获得当前应用的服务器磁盘绝对路径。
11. Request.PhysicalPath
获得页面的服务器磁盘绝对路径。
Request.QueryString
获取请求的参数字符串。
12. Request.RequestType
获得客户端请求服务器页面的方式。GET/POST等等。
13. Request.Url
获得客户端请求的URL。
14. Request.RowUrl
获得原始请求URL。
14. Request.UserHostAddress
获取请求客户端的IP地址。
15. Request.UserHostName
获取请求客户端的用户名。
16. Request.UserLanguage
获得请求客户端浏览器支持的语言。
17. Request.UrlReferrer
网页的来源。可以根据该属性判断从百度搜的关键字、防下载盗链、防图片盗链。
注意:该属性可以伪造(例如迅雷)。
Request对象常用方法:
Request.MapPath(string virtulPath)
将虚拟路径转换为磁盘上的物理路径。
Request.MapPath("~/a/b.aspx")得到D:\2008\WebSites\a\b.aspx 。
例:在一般处理程序中输出图片,并且防止盗链。并作IP屏蔽。如果正常输出,则先添加IP显示的水印。
using System;
using System.Web;
public class Pic1:IHttpHandler{
public void ProcessRequest(HttpContext context){
context.Response.ContentType="image/JPEG";
string fullpath=HttpContext.Current.Server.MapPath("a.jpg");
using(System.Drawing.Bitmap bitmap=new System.Drawing.Bitmap(fullpath))
{
using(System.Drawing.Graphics g=System.Drawing.Graphics.FromImage(bitmap))
{
if(context.Request.UrlReferrer==null)
{
g.Clear(System.Drawing.Color.White);
g.DrawString("禁止直接浏览图片",new System.Drawing.Font("宋体",30),System.Drawing.Brushes.Red,0,0);
}
else if(context.Request.UrlReferrer.Host!="localhost")
{
g.Clear(System.Drawing.Color.White);
g.DrawString("图片只限内部使用",new System.Drawing.Font("宋体",30),System.Drawing.Brushes.Red,0,0);
}
g.DrawString("你的IP:"+context.Request.UserHostAddress,new System.Drawing.Font("宋体",30),System.Drawing.Brushes.Red,0,0);
if(context.Request.UserHostAddress=="127.0.0.1" || context.Request.UserHostAddress=="192.168.10.12")
{
g.Clear(System.Drawing.Color.Blue);
g.DrawString("你的IP被屏蔽。",new System.Drawing.Font("宋体",30),System.Drawing.Brushes.Red,0,0);
}
}
bitmap.Save(context.Response.OutputStream,System.Drawing.Imaging.ImageFormat.Jpeg);
}
}
}
Response对象
Page类的一个属性。
响应的缓冲输出:为提高服务器性能,ASP.NET想浏览器Write的时候默认不会每次都立即输出到浏览器,而是会缓存数据,到合适的时候或者响应结束才会将缓存中的数据一起发送到浏览器。
Response的主要成员
1. Response.Buffer。Response.BufferOutput:这两个属性是一样的Buffer内部调用了BufferOutput。该属性用于控制是否采用响应缓冲,默认是true。
2. Response.Flush()将缓存区中的数据发送给浏览器。在需要将Write出的内容立即输出到浏览器的场合非常实适用。
3. Response.Clear()清空缓存中的数据。不发送到浏览器。可以在缓存输出之前调用该方法。
4. Response.ContentEncoding输出流的编码。一般不用考虑。但可以通过该属性来读取和设置。
5. Response.ContentType输出流的内容类型,比如是html(text/html)还是普通文本(text/plain),还是JPEG图片(image/JPEG)。
6. Response.Cookies返回浏览器的Cookie的集合,可以通过它设置Cookie。一般情况下不需要处理Cookies。
7. Response.OutputStream 输出流。
8. Response.End()终止响应。使用该方法会终止执行调用的过程。
9. Response.Redrect(urlpath)重定向浏览器。可以重定向到外部网站。在浏览器地址栏看到url发送改变。
10. Response.SetCookie(HttpCookie cookie)向输出流更新写到浏览器中的Cookie,如果Cookie存在就更新,不存在就增加,是对Response.Cookies的简化调用。
10.Response.Write()向浏览器输出内容。Write方法输出的内容在渲染输出的页面之前。
11.Response.WriteFile(string filename) 将文件输出给浏览器。
注意:
1.不建议在aspx中输出非html的内容。
2.二进制内容使用OutputStream。如图片,下载文件。文本数据使用Write。
Server对象
context的一个属性,是HttpServerUtility类的一个对象。
1.编码
Server.HtmlDecode(string)、Server.HtmlEncode(string)、
Server.UrlDecode(string)、Server.UrlEncode(string)
进行html解码与编码。主要防治XSS攻击。
HtmlDecode,HtmlEncode,UrlDecode,UrlEncode方法是对HttpUtility类中相应方法的代理调用。推荐使用HttpUtility类,因为有些地方不太容易获取到Server对象。
UrlDecode,UrlEncode一般可以处理非Ascii码的url。
2. Server.Transfer(path)内部重定向。浏览器地址不发生改变。由于是内部请求,所以Request、Cookies等这些来源页面接受的参数可以在重定向页面中获得。
注意:不能重定向到ashx,否则会报错"执行子请求出错"。
如果需要这样访问ashx,需要做额外处理。
3. 使用优势不能得到HttpContext对象,比如在Global.asax中,可以通过HttpContext.Current取得当前的HttpContext对象。进而取得Response,Request,Server等。
4. Server.MapPath 同request.MapPath。
分享到:
相关推荐
【ASP.NET编程知识】ASP.NET笔记之 Request 、Response 与Server的使用.docx
ASP.NET 2.0动态网站开发基础教程(C#) 第04章 ASP.NET2.0常用对象 response request server session cookie(共17页).ppt ASP.NET 2.0动态网站开发基础教程(C#) 第05章 ASP.NET2.0服务器控件 内部 新增 增强 ...
本篇文章小编为大家介绍,ASP.NET笔记之 Request 、Response 与Server的使用。需要的朋友参考下
对于ASP来说,我们常用的数据库无非是ACCESS和SQL SERVER,对于ASP.NET也是,不过ASP.NET对于SQL SERVER有专门的连接组件而不推荐用OLE DB。 首先看一下ACCESS的连接数据库并打开; string strConnection=...
全书共分37章,包括认识ASP.NET 2.0、ASP.NET 2.0网页语法、字符串与日期处理、Page对象、Response和Request对象、Application和Session对象、Server对象、Cookie对象、Cache对象、Global.asax全局程序集文件、标准...
ASP.NET 2.0+SQL Server 2005全程指南 目录 基础篇 第1章 ASP.NET概述及环境配置 1.1 认识ASRNET 1.1.1 .NET Framework框架 1.1.2 ASP.NET功能与特性 1.1.3 ASP.NET与ASP的区别 1.2 搭建ASP.NET开发环境 1.2.1...
ASP.NET 2.0动态网站开发基础教程(C#) 第04章 ASP.NET2.0常用对象 response request server session cookie(共17页).ppt ASP.NET 2.0动态网站开发基础教程(C#) 第05章 ASP.NET2.0服务器控件 内部 新增 增强 ...
页面对象:Application、Session、Cookie、Request和Response 智能表单的创建:文本、表格、图像、上传等 客户端表单验证:普通验证、自定义验证、比较验证等 超链接、页面容器、广告、日历控件 用户控件、自定义...
ASP.NET 2.0动态网站开发基础教程(C#)第04章 ASP.NET2.0常用对象 response request server session cookie(共17页).ppt ASP.NET 2.0动态网站开发基础教程(C#)第05章 ASP.NET2.0服务器控件 内部 新增 增强 验证...
ASP.NET 2.0动态网站开发基础教程(C#) 第04章 ASP.NET2.0常用对象 response request server session cookie(共17页).ppt ASP.NET 2.0动态网站开发基础教程(C#) 第05章 ASP.NET2.0服务器控件 内部 新增 增强 ...
ASP.NET 2.0动态网站开发基础教程(C#) 第04章 ASP.NET2.0常用对象 response request server session cookie(共17页).ppt ASP.NET 2.0动态网站开发基础教程(C#) 第05章 ASP.NET2.0服务器控件 内部 新增 增强 ...
ASP.NET 2.0动态网站开发基础教程(C#) 第04章 ASP.NET2.0常用对象 response request server session cookie(共17页).ppt ASP.NET 2.0动态网站开发基础教程(C#) 第05章 ASP.NET2.0服务器控件 内部 新增 增强 ...
ASP.NET 2.0动态网站开发基础教程(C#) 第04章 ASP.NET2.0常用对象 response request server session cookie(共17页).ppt ASP.NET 2.0动态网站开发基础教程(C#) 第05章 ASP.NET2.0服务器控件 内部 新增 增强 ...
ASP.NET 2.0动态网站开发基础教程(C#) 第04章 ASP.NET2.0常用对象 response request server session cookie(共17页).ppt ASP.NET 2.0动态网站开发基础教程(C#) 第05章 ASP.NET2.0服务器控件 内部 新增 增强 ...
ASP.NET 2.0动态网站开发基础教程(C#) 第04章 ASP.NET2.0常用对象 response request server session cookie(共17页).ppt ASP.NET 2.0动态网站开发基础教程(C#) 第05章 ASP.NET2.0服务器控件 内部 新增 增强 ...
An introduction to ASP.NET programming 1. Describe the components of a web application. 2. Describe the four components of a URL, and describe what happens when you omit the file name from a URL when ...
对于ASP.net的基础性学习,以及运用,导航条控件,Page对象及其生命周期 Request对象 Response对象 Server对象
ASP.NET 4高级程序设计(第4版)》【原版书为:Pro ASP.NET 4 in C# 2010】是ASP.NET领域的鸿篇巨制,全面讲解了ASP.NET4的各种特性及其背后的工作原理,并给出了许多针对如何构建复杂、可扩展的网站从实践中得出的...
ASP.NET 2.0动态网站开发基础教程(C#) 第04章 ASP.NET2.0常用对象 response request server session cookie(共17页).ppt ASP.NET 2.0动态网站开发基础教程(C#) 第05章 ASP.NET2.0服务器控件 内部 新增 增强 ...