Request与Response其他成员

Request其它成员

•1、Request.UrlReferrer 发出请求的网页的来源,可以根据这个判断来防下载盗链、防图片盗链,可以伪造(比如迅雷)。"本图片仅供如鹏网内部交流使用",在DZ中测试。全局防盗链用Globals.asax
•2、Request.UserHostAddress获得访问者的IP地址
 
•3、Request.Cookies 获取浏览器发过来的浏览器端的Cookie,从它里面读取Cookie值,比如context.Request.Cookies["mysessionid"],使用Request.Cookies 的时候一般只是读取,将Cookie写回浏览器要用Response.Cookies
•4、Request.MapPath(virtulPath)将虚拟路径转换为磁盘上的物理路径,Request.MapPath("~/a/b.aspx")就会得到D:\2008\WebSites\WebSite4\a\b.aspx
 
1、 (*) Request.AppRelativeCurrentExecutionFilePath,获取当前执行请求相对于应用根目录的虚拟路径,以~开头,比如“~/Handler.ashx”,
2、 (*) Request.PhysicalApplicationPath,获取当前应用的物理路径,比如D:\我的文档\Visual Studio 2008\WebSites\WebSite4\
3、 (*) Request.PhysicalPath,获取当前请求的物理路径,比如D:\我的文档\Visual Studio 2008\WebSites\WebSite4\Handler.ashx
4、 (*) Request.RawUrl获得原始请求URL、Request.Url获得请求的URL,区别涉及到URL重写的问题
5、 (*) Request.UserLanguages获得访问者浏览器支持的语言,可以通过这个实现对不同语言的人显示不同语言的页面。
 

Response其它成员

响应的缓冲输出:为了提高服务器的性能,ASP.Net向浏览器Write的时候默认并不会每Write一次都会立即输出到浏览器,而是会缓存数据,到合适的时机或者响应结束才会将缓冲区中的数据一起发送到浏览器。
•Response对象的主要成员:
–1、Response.Buffer、Response.BufferOutput:经过Reflector反编译,发现两个属性是一样的,Buffer内部就是调用的BufferOutput。这个属性用来控制是否采用服务器缓存默认是true
–2、Response.Flush()将服务器缓冲区中的数据发送给浏览器。这在需要将Write出来的内容立即输出到浏览器的场合非常适用。案例:大批量数据的导入,显示正在导入第*条数据,用Thread.Sleep模拟耗时。
 
for (int i = 0; i < 20; i++)
        {
             //Response.BufferOutput=false;
            System.Threading.Thread.Sleep(500);
            context.Response.Write("第"+i+"步执行完成!<br/>");
            context.Response.Flush();
        }
 
–3、Response.Clear()清空缓存区中的数据,这样在缓存区中的没有发送到浏览器端的数据被清空,不会被发送到浏览器。
–4、Response.ContentEncoding输出流的编码。
–5、Response.ContentType 输出流的内容类型,比如是html(text/html)还是普通文本(text/plain)还是JPEG图片(image/JPEG)。
 如: 
               context.Response.ContentType = "text/html";
 
6、Response.Cookies 返回给浏览器的Cookie的集合,可以通过它设置Cookie
7、Response.OutputStream 输出流,在输出图片、Excel文件等非文本内容的时候要使用它
8、Response.End()  终止响应,将之前缓存中的数据发给浏览器,End()之后的代码不会被继续执行。在终止一些非法请求的时候,比如盗链等可以用End()立即终止请求。
9、Response.Redirect(url) 重定向浏览器到新的网址。即可以重定向到站外网址也可以重定向到站内网址。Response.Redirect("http://www.rupeng.com")、Response.Redirect("a.htm")。Redirect是向浏览器发回302重定向,是通知浏览器“请重新访问url这个网址”,这个过程经历了服务器通知浏览器“请重新访问url这个网址”和浏览器接到命令访问新网址的过程。使用HttpWatch查看整个响应过程的Http报文。用Redirect因为是浏览器自己去重新访问新网址的,所以在地址栏中是可以看到网址的变化的。后面会用来防止刷新浏览器时提示“重试”。
10、Response.SetCookie(HttpCookie cookie),向输出流中更新写到浏览器中的Cookie,如果Cookie存在就更新,不存在就增加。是对Response.Cookies的简化调用。
11、Response.Write()向浏览器输出内容。
12、(*)Response.WriteFile(filename)向浏览器输出文件。比如Response.WriteFile("c:/boot.ini")
 

 

posted @ 2013-04-06 19:33  Big.Eagle  阅读(204)  评论(0)    收藏  举报