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。
分享到:
相关推荐
在Web开发领域,尤其是基于ASP(Active Server Pages)的环境中,`Request`和`Response`对象扮演着至关重要的角色。它们是ASP框架中的核心组件,负责处理客户端请求和服务器响应,使得动态网页能够与用户进行交互。...
ASP.NET 编程知识 - Request, Response 与 Server 的使用 ASP.NET 是一个功能强大且流行的 Web 应用程序开发框架,它提供了许多内置对象和类来帮助开发者快速构建高效、灵活的 Web 应用程序。在 ASP.NET 中,...
在ASP.NET中,内置对象如Request、Response、Session、Application等,它们是服务器端的核心组件,分别用于处理用户请求、发送响应、管理会话状态以及全局共享数据。了解并熟练运用这些内置对象是提升开发效率的关键...
在ASP.NET中,请求URL获取返回值是网络编程的一个常见任务,主要涉及到Web请求和数据交互。本篇文章将深入探讨如何使用`WebRequest`和`WebClient`这两种方式来实现这一功能。 首先,让我们理解`WebRequest`类。它是...
ASP.NET提供了一系列内置对象,如Request、Response、Session和Application,它们在处理用户请求、响应数据、管理会话状态和全局应用程序数据等方面起到核心作用。 **第四章 ASP.NET类库** 探讨了ASP.NET丰富的类库...
* ASP.NET 中的七个内置对象:Request、Response、Server、Session、Application、HttpContext、Page 七、XML 和 DTD * URL 的中文意思是指统一资源定位器 * DTD 最大的作用就是验证 XML 文件的正确性 八、ASP...
这个项目使用了两种主要的技术:ASP(Active Server Pages)和ASP.NET,它们都是微软的服务器端脚本技术,用于构建动态网站和Web应用程序。ASP.NET是在ASP的基础上发展起来的,提供了更加强大和现代的Web开发框架。 ...
* 列举 ASP.NET 中的七个内置对象:Page、Response、Request、Session、Cookie、Server、Application。 这些知识点涵盖了 ASP.NET 的基本概念、语言特性、Web 控件、Session 和 Application 对象、ADO.NET 等方面,...
在实现这些功能时,ASP.NET的内置对象如Request、Response、Session、Cookie等会起到关键作用。例如,Session可以用来存储用户的状态信息,Request则用于获取用户提交的数据,而Response则用于向浏览器发送HTML内容...
### ASP.NET内置对象详解 #### 一、ASP.NET内置对象概述 ASP.NET 是 Microsoft 开发的一个用于构建动态 Web 应用程序的框架。它提供了许多内置对象,这些对象封装了常见的 Web 应用开发功能,使得开发者能够更高效...
同时,了解Page生命周期、Request和Response对象、Session和Application状态管理等,是理解ASP.NET工作原理的关键。 2. **数据库开发**:ASP.NET与数据库的交互主要通过ADO.NET实现。读者将学习如何使用DataSet、...
全书共分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 图片预览技术是Web开发中一个实用的功能,特别是在用户需要上传图片并即时查看效果的场景下。本文将详细讲解如何在ASP.NET环境中实现图片上传后的即时预览,以及考虑不同浏览器的兼容性问题。 首先,我们...
- ASP.NET应用程序与网页的生命周期,包括HttpContext、Response、Request等对象的用途。 - ASP.NET实现事件驱动的机制。 - 自定义用户控件。 ##### (四)数据库技术 **步骤7**: 掌握数据库技术,包括SQL Server ...
ASP.NET Web API 是微软开发的一个用于构建RESTful服务的框架,它可以轻松地为Web应用程序、移动设备和桌面应用提供数据接口。在ASP.NET Web API中处理文件上传是常见的需求,特别是当你需要允许用户通过Web界面提交...
在这个"ASP.NET 学习课件"中,我们将深入探讨几个关键概念和技术,包括导航条控件、Page对象及其生命周期、Request对象、Response对象以及Server对象。 首先,导航条控件在ASP.NET中扮演着重要的角色,它是用户界面...
页面对象:Application、Session、Cookie、Request和Response 智能表单的创建:文本、表格、图像、上传等 客户端表单验证:普通验证、自定义验证、比较验证等 超链接、页面容器、广告、日历控件 用户控件、自定义...
ASP.NET 复习材料 一、类和结构 ASP.NET 中的类和结构是两个不同的概念。类是引用类型,结构是值类型。这意味着类是通过引用来访问的,而结构是通过值来访问的。在 C# 中,类是通过关键字 "class" 声明的,而结构...