这篇博文主要介绍一下几个对象。

1)HttpContext

2)HttpRequest

3)HttpResponse

4)context. Server

5)context.Session

HttpContext

1.描述

和本次请求相关对象的一个上下文对象,一般通过它获取其他对象。

2.截图

3.对HttpContext.Current的说明

在HttpHandler的ProcessRequest方法中可以通过方法的context参数获得对象。在其他地方可以通过HttpContext.Current拿到当前请求堆栈中的HttpContext对象,但是还是建议通过参数传递,这样思路清晰。

(*)在子线程是无法获得HttpContext.Current

HttpRequest

1.描述

context. Request["username"]; 通过这种方式能够得到一个HttpRequest对象。

HttpRequest对象描述了关于请求的相关信息可以通过这个对象,拿到我们想要的请求数据。

2.截图

通过Visual Studio可以看到 通过context. Request可以获得到一个HttpRequest对象

3.获取请求数据的几种方式

1)context.Request.Form["username"]获取Post请求中的值,

2)context.Request.QueryString["username"]获取Get请求中的值。

(PS:“xxx?name=xx&age=8”叫做QueryString请求参数 )

3)context.Request[" username "] 通吃

顺序从QueryString、Form、Cookies、 ServerVariables中找,第一个找到的就是(反编译验证)

虽然使用Request[]的这种方式获取请求数据,效率会略有下降(几乎可忽略不计),但使用起来真心方便啊。

我推荐使用这个!

4.关于请求数据的类型

请求参数获取的都是String类型数据,因为Http协议就是文本。所以获取请求来的数据,大多需要数据转换。

5.通过HttpRequest对象获取一些请求信息

1)浏览器

context.Request.Browser.Browser

2)操作系统信息

context.Request.Browser.Platform

3)浏览器内核版本

context.Request.Browser.Version

4)请求报文头

//Request.Headers请求报文头

for (int i = 0; i < context.Request.Headers.AllKeys.Length; i++)

{

string key = context.Request.Headers.AllKeys[i];

string value = context.Request.Headers[key];

context.Response.Write(key + "=" + value + "\n");

}

5)获取请求方式 (GET   or   POST?)

context.Request.HttpMethod

6)获取请求页面文件路径(相对)

context.Request.Path

7)获取请求参数

context.Request.QueryString

8)被请求的文件的服务器上的物理路径

context.Request.PhysicalPath

9)获取用户代理

context.Request.UserAgent

10)客户端的IP地址

context.Request.UserHostAddress

11)获取客户端上次请求的url的有关信息

context.Request.UrlReferrer

12)浏览器支持什么语言

context.Request.UserLanguages)

PS: 对对没有错,看着眼熟就对了。这些请求都在http协议里头详细介绍过!

HttpRequest获取的所有信息都来自http请求报文。

HttpResponse

1.简介

HttpResponse是对响应报文进行设置的一个对象。通过context. Response 能够得到HttpResponse对象。

2.截图

通过Visual Studio 可以观察到context. Response会得到一个HttpResponse对象。

3.重定向

Redirect()重定向;

Redirect是向浏览器发302重定向,是通知浏览器“请重新访问url这个网址”,这个过程经历了服务器通知浏览器“请重新访问url这个网址”和浏览器接到命令访问新网址的过程。

4.End()

End()将当前所有缓冲的输出发送到客户端,停止该页的执行。通过对End()进行try,发现是是抛出了异常。所以End()之后的代码就不会执行了。

context. Server

1.描述

Server是一个HttpServerUtility类型的对象,不是一个类名

2.MapPath

MapPath("~/a.htm")将虚拟路径(~代表项目根目录)转换为磁盘上的绝对路径,操作项目中的文件使用。

3.HtmlEncode 和 HtmlDecode

HtmlEncode、 HtmlDecode:HTML编码解码。Encode为的是把特殊字符转义显示

4.UrlEncode和 UrlDecode

UrlEncode、 UrlDecode:url编码解码。汉字、特殊字符(空格、尖括号)等通过Url传递的时候要编码

context. session

使用此对象的前提是实现接口IRequiresSessionState接口。

然后使用:context.Session["checkCode"] = code;

ASP.NET内核几大对象、ASP.NET核心知识(6)--转载的更多相关文章

  1. ASP.NET内核几大对象、ASP.NET核心知识(6)

    描述 其实今天的博文,是一般处理程序的后续部分,理论上应该叫一般处理程序().但是觉得文章标题后面的系列名已经有个数字,再加一个2有点怪. 这篇博文主要介绍一下几个对象. )HttpContext ) ...

  2. ASP.NET内核几大对象、ASP.NET核心知识(7)--转载

    本文的学习流程是这样安排的. 一个简单的GDI小案例 1.说明 如果你想思考如何生成验证码,那么您第一个要解决的问题,一定是.NET动态生成图片问题. //GDI:.Net程序中进行绘图的一些类. 2 ...

  3. 18第一章 ASP.Net内建对象

    第一章        ASP.Net内建对象 第一章        ASP.Net内建对象 ASP.Net为保持用户的数据和信息,内建了许多对象,包括Application.Response.Requ ...

  4. Asp.net有三大对象:HttpContext, HttpRequest, HttpResponse

    一.Asp.net有三大对象:HttpContext, HttpRequest, HttpResponse.命名空间:  System.Web程序集:  System.Web(在 System.Web ...

  5. Cookie详解、ASP.NET核心知识(7)

    无状态的http协议 1.回顾http协议 Http协议是请求响应式的,有请求才有响应,是无状态的,不会记得上次和网页“发生了什么”. 关于http协议的这种特点,黑兔在前面的这三篇博文中进行了详细的 ...

  6. 网络基础知识、ASP.NET 核心知识(1)*

    为什么要写网络? 我原本的计划是这样的,连续两天梳理ASP.NET开发的核心知识.说到这呢,有人问了.“不是说好了做ASP.NET笔记吗?为啥要写网络基础知识?是不是傻?” 原因是这样的.作为网站开发 ...

  7. ASP.NET中application对象

    ASP.NET中application对象的使用. Application对象的应用  1.使用Application对象保存信息  (1).使用Application对象保存信息  Applicat ...

  8. 初识 Asp.Net内置对象之Response对象

    Response对象 Respose对象用于将数据从服务器发送回浏览器.它允许将数据作为请求的结果发送到浏览器,并提供有光响应的信息,可以用来在页面中输入数据,在页面中跳转,还可以传递各个页面的参数, ...

  9. ASP.NET 内置对象涉略

    一.ASP.NET中内置的常用对象的介绍 本文列举了ASP.NET 的八个内置对象,其中前五个是比较常用的. 1.Response Response 对象用于从服务器向用户发送输出的结果. Write ...

随机推荐

  1. Javascript基础Function

    函数声明与表达式 function someFunc(){ alert("这是一个函数"); } var func=function(){ alert("函数表达式&qu ...

  2. 事件监听:诀别Android繁琐的事件注册机制——view.setOnXXXXListener

    本版本为1.0,支持较少,使用不够方便.相关封装逻辑结构已升级至2.0,详情可参见:更完善的安卓事件监听实现 先简单扯两句这几天学习下来对java事件监听机制的一点感触.客观地讲,java的事件监听机 ...

  3. win8 安装myeclipse 失败 MyEclipse ForSpring 安装失败

    好像是main方法.jar无法载入之类的.. 可能是权限的问题哦.. 使用管理员权限试一下..

  4. C#随机生成连续多少个十六进制数字

    1.调用系统函数生成全球唯一标识 Guid.NewGuid().ToString(); 2.生成16组十六进制数 ,)+Guid.NewGuid().ToString().Substring(,)+G ...

  5. hdu5348 MZL's endless loop(欧拉回路)

    转载请注明出处: http://www.cnblogs.com/fraud/          ——by fraud MZL's endless loop Time Limit: 3000/1500 ...

  6. Windows下Mysql解压缩版配置安装与卸载

    安装: ①解压Mysql到合适的位置! ②以管理员身份运行命令提示符(cmd),cd C:\Documents and Settings\Administrator\桌面\mysql-5.6.24-w ...

  7. js页面加载进度条

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. 新浪短链接API接口示例

    <?php /** * URL地址长短切换,由sina新浪短链接API生成 * User: chenqt * Date: 2016/8/23 * Time: 18:45 */ class Url ...

  9. PHP数组foreach后使用current取值的问题

    先看如下的代码 $arr=['a','b','c']; foreach ($arr as $v){ echo $v.'<br>'; } var_dump(current($arr)); 今 ...

  10. shopnc怎么开启伪静态 shopnc开启伪静态的方法

    最近要给一个shopnc网站开启伪静态,用的是shopnc b2b2c,在网上搜索了好多shopnc开启伪静态的方法,但都是针对shaopnc c2c的,没有关于shopnc b2b2c的,最后终于找 ...