ASP.NET内核几大对象、ASP.NET核心知识(6)--转载
这篇博文主要介绍一下几个对象。
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.截图

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)--转载的更多相关文章
- ASP.NET内核几大对象、ASP.NET核心知识(6)
描述 其实今天的博文,是一般处理程序的后续部分,理论上应该叫一般处理程序().但是觉得文章标题后面的系列名已经有个数字,再加一个2有点怪. 这篇博文主要介绍一下几个对象. )HttpContext ) ...
- ASP.NET内核几大对象、ASP.NET核心知识(7)--转载
本文的学习流程是这样安排的. 一个简单的GDI小案例 1.说明 如果你想思考如何生成验证码,那么您第一个要解决的问题,一定是.NET动态生成图片问题. //GDI:.Net程序中进行绘图的一些类. 2 ...
- 18第一章 ASP.Net内建对象
第一章 ASP.Net内建对象 第一章 ASP.Net内建对象 ASP.Net为保持用户的数据和信息,内建了许多对象,包括Application.Response.Requ ...
- Asp.net有三大对象:HttpContext, HttpRequest, HttpResponse
一.Asp.net有三大对象:HttpContext, HttpRequest, HttpResponse.命名空间: System.Web程序集: System.Web(在 System.Web ...
- Cookie详解、ASP.NET核心知识(7)
无状态的http协议 1.回顾http协议 Http协议是请求响应式的,有请求才有响应,是无状态的,不会记得上次和网页“发生了什么”. 关于http协议的这种特点,黑兔在前面的这三篇博文中进行了详细的 ...
- 网络基础知识、ASP.NET 核心知识(1)*
为什么要写网络? 我原本的计划是这样的,连续两天梳理ASP.NET开发的核心知识.说到这呢,有人问了.“不是说好了做ASP.NET笔记吗?为啥要写网络基础知识?是不是傻?” 原因是这样的.作为网站开发 ...
- ASP.NET中application对象
ASP.NET中application对象的使用. Application对象的应用 1.使用Application对象保存信息 (1).使用Application对象保存信息 Applicat ...
- 初识 Asp.Net内置对象之Response对象
Response对象 Respose对象用于将数据从服务器发送回浏览器.它允许将数据作为请求的结果发送到浏览器,并提供有光响应的信息,可以用来在页面中输入数据,在页面中跳转,还可以传递各个页面的参数, ...
- ASP.NET 内置对象涉略
一.ASP.NET中内置的常用对象的介绍 本文列举了ASP.NET 的八个内置对象,其中前五个是比较常用的. 1.Response Response 对象用于从服务器向用户发送输出的结果. Write ...
随机推荐
- JS高级程序设计学习笔记之基本包装类型
概述 基本类型:string.boolean.number 每当读取一个基本类型的值的时候,后台就会创建一个对应的基本包装类型的对象,从而让我们能够调用一些方法来操作这些数据. 使用new操作符创建的 ...
- 关于IE11
最近,一个开发代号为Windows Blue的Windows操作系统泄漏到了互联网上,该操作系统的内置浏览器为IE11,本文将介绍一下这个泄漏版的IE11中有哪些关键的新变化和新特性. 预先声明: 本 ...
- jedis处理redis cluster集群的密码问题
环境介绍:jedis:2.8.0 redis版本:3.2 首先说一下redis集群的方式,一种是cluster的 一种是sentinel的,cluster的是redis 3.0之后出来新的集群方式 本 ...
- C#获取客户端相关信息
1.获取Uri参数 2.获取客户端操作系统.浏览器信息 3.获取客户端分辨率 4.C#判断用户是手机访问还是PC访问
- 基于Pojo的开发模式(day03)
上一次的文章讨论到了Spring的设计目标:使得JEE开发更易用. ok,作为一个Java开发人员,应该都知道struts这个框架,不知道是否大家都清楚struts1和struts2的区别. 首先,这 ...
- hdu 1282 回文数猜想
Problem Description 一个正整数,如果从左向右读(称之为正序数)和从右向左读(称之为倒序数)是一样的,这样的数就叫回文数.任取一个正整数,如果不是回文数,将该数与他的倒序数相加,若其 ...
- C语言结构体的字节对齐
Test Code: #include <iostream> #include <cstring> using namespace std; struct A{ int a; ...
- 【CCNA学习笔记】1.思科路由器的基本配置
教学视频来源:http://edu.51cto.com/lesson/id-10930.html. 怎么安装模块.连交叉线什么的视频里面老师说的很清楚了,我只记录一下IOS配置的命令(虽然一副不明觉厉 ...
- 检测字节流是否是UTF8编码
几天前偶尔看到有人发帖子问“如何自动识别判断url中的中文参数是GB2312还是Utf-8编码” 也拜读了wcwtitxu使用巨牛的正则表达式检测UTF8编码的算法. 使用无数或条件的正则表达式用起来 ...
- 《Programming WPF》翻译 第9章 3.自定义功能
原文:<Programming WPF>翻译 第9章 3.自定义功能 一旦你挑选好一个基类,你将要为你的控件设计一个API.大部分WPF元素提供属性暴露了多数功能,事件,命令,因为他们从框 ...