`

ASP.NET Request Response Server

 
阅读更多

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内置对象Request和Response详解

    在Web开发领域,尤其是基于ASP(Active Server Pages)的环境中,`Request`和`Response`对象扮演着至关重要的角色。它们是ASP框架中的核心组件,负责处理客户端请求和服务器响应,使得动态网页能够与用户进行交互。...

    【ASP.NET编程知识】ASP.NET笔记之 Request 、Response 与Server的使用.docx

    ASP.NET 编程知识 - Request, Response 与 Server 的使用 ASP.NET 是一个功能强大且流行的 Web 应用程序开发框架,它提供了许多内置对象和类来帮助开发者快速构建高效、灵活的 Web 应用程序。在 ASP.NET 中,...

    ASP.net+SQL server课件

    在ASP.NET中,内置对象如Request、Response、Session、Application等,它们是服务器端的核心组件,分别用于处理用户请求、发送响应、管理会话状态以及全局共享数据。了解并熟练运用这些内置对象是提升开发效率的关键...

    asp.net 请求url 获取返回值

    在ASP.NET中,请求URL获取返回值是网络编程的一个常见任务,主要涉及到Web请求和数据交互。本篇文章将深入探讨如何使用`WebRequest`和`WebClient`这两种方式来实现这一功能。 首先,让我们理解`WebRequest`类。它是...

    网络程序设计案例教程 —ASP.Net+SQL Server(C#实现)PPT

    ASP.NET提供了一系列内置对象,如Request、Response、Session和Application,它们在处理用户请求、响应数据、管理会话状态和全局应用程序数据等方面起到核心作用。 **第四章 ASP.NET类库** 探讨了ASP.NET丰富的类库...

    ASP.NET期末复习题

    * ASP.NET 中的七个内置对象:Request、Response、Server、Session、Application、HttpContext、Page 七、XML 和 DTD * URL 的中文意思是指统一资源定位器 * DTD 最大的作用就是验证 XML 文件的正确性 八、ASP...

    BBS.rar_BBS asp_asp bbs_asp sql_asp.net sql server_bbs asp.net

    这个项目使用了两种主要的技术:ASP(Active Server Pages)和ASP.NET,它们都是微软的服务器端脚本技术,用于构建动态网站和Web应用程序。ASP.NET是在ASP的基础上发展起来的,提供了更加强大和现代的Web开发框架。 ...

    ASP.NET测试题.docx

    * 列举 ASP.NET 中的七个内置对象:Page、Response、Request、Session、Cookie、Server、Application。 这些知识点涵盖了 ASP.NET 的基本概念、语言特性、Web 控件、Session 和 Application 对象、ADO.NET 等方面,...

    使用asp.net编写的bbs论坛系统

    在实现这些功能时,ASP.NET的内置对象如Request、Response、Session、Cookie等会起到关键作用。例如,Session可以用来存储用户的状态信息,Request则用于获取用户提交的数据,而Response则用于向浏览器发送HTML内容...

    asp.net内置对象

    ### ASP.NET内置对象详解 #### 一、ASP.NET内置对象概述 ASP.NET 是 Microsoft 开发的一个用于构建动态 Web 应用程序的框架。它提供了许多内置对象,这些对象封装了常见的 Web 应用开发功能,使得开发者能够更高效...

    《ASP.NET4(C#)项目开发教程面向工作过程》

    同时,了解Page生命周期、Request和Response对象、Session和Application状态管理等,是理解ASP.NET工作原理的关键。 2. **数据库开发**:ASP.NET与数据库的交互主要通过ADO.NET实现。读者将学习如何使用DataSet、...

    ASP.NET 2.0开发技术大全

    全书共分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全程指南-源代码

    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 图片预览

    ASP.NET 图片预览技术是Web开发中一个实用的功能,特别是在用户需要上传图片并即时查看效果的场景下。本文将详细讲解如何在ASP.NET环境中实现图片上传后的即时预览,以及考虑不同浏览器的兼容性问题。 首先,我们...

    Asp.Net最佳学习路线图

    - ASP.NET应用程序与网页的生命周期,包括HttpContext、Response、Request等对象的用途。 - ASP.NET实现事件驱动的机制。 - 自定义用户控件。 ##### (四)数据库技术 **步骤7**: 掌握数据库技术,包括SQL Server ...

    ASP.NET Web API 接收文件上传

    ASP.NET Web API 是微软开发的一个用于构建RESTful服务的框架,它可以轻松地为Web应用程序、移动设备和桌面应用提供数据接口。在ASP.NET Web API中处理文件上传是常见的需求,特别是当你需要允许用户通过Web界面提交...

    ASP.net 学习课件

    在这个"ASP.NET 学习课件"中,我们将深入探讨几个关键概念和技术,包括导航条控件、Page对象及其生命周期、Request对象、Response对象以及Server对象。 首先,导航条控件在ASP.NET中扮演着重要的角色,它是用户界面...

    零基础学ASP.NET

    页面对象:Application、Session、Cookie、Request和Response 智能表单的创建:文本、表格、图像、上传等 客户端表单验证:普通验证、自定义验证、比较验证等 超链接、页面容器、广告、日历控件 用户控件、自定义...

    ASP.NET复习材料

    ASP.NET 复习材料 一、类和结构 ASP.NET 中的类和结构是两个不同的概念。类是引用类型,结构是值类型。这意味着类是通过引用来访问的,而结构是通过值来访问的。在 C# 中,类是通过关键字 "class" 声明的,而结构...

Global site tag (gtag.js) - Google Analytics