博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ASP.NET内核几大对象、ASP.NET核心知识(6)
阅读量:6965 次
发布时间:2019-06-27

本文共 2586 字,大约阅读时间需要 8 分钟。

描述其实今天的博文,是一般处理程序的后续部分,理论上应该叫一般处理程序(2)。但是觉得文章标题后面的系列名已经有个数字,再加一个2有点怪。这篇博文主要介绍一下几个对象。1)HttpContext2)HttpRequest3)HttpResponse4)context. ServerHttpContext1.描述 和本次请求相关对象的一个上下文对象,一般通过它获取其他对象。2.截图clipboard3.对HttpContext.Current的说明在HttpHandler的ProcessRequest方法中可以通过方法的context参数获得对象。在其他地方可以通过HttpContext.Current拿到当前请求堆栈中的HttpContext对象,但是还是建议通过参数传递,这样思路清晰。(*)在子线程是无法获得HttpContext.CurrentHttpRequest1.描述context. Request["username"]; 通过这种方式,能够得到一个HttpRequest对象。HttpRequest对象描述了,关于请求的相关信息,我们可以通过这个对象,拿到我们想要的请求数据。2.截图 通过Visual Studio可以看到 通过context. Request可以获得到一个HttpRequest对象j[}pnw8_25db3.获取请求数据的几种方式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.Browser2)操作系统信息context.Request.Browser.Platform3)浏览器内核版本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.HttpMethod6)获取请求页面文件路径(相对)context.Request.Path7)获取请求参数context.Request.QueryString8)被请求的文件的服务器上的物理路径context.Request.PhysicalPath9)获取用户代理context.Request.UserAgent10)客户端的IP地址context.Request.UserHostAddress11)获取客户端上次请求的url的有关信息context.Request.UrlReferrer12)浏览器支持什么语言context.Request.UserLanguages)PS: 对对没有错,看着眼熟就对了。这些请求都在http协议里头详细介绍过!HttpRequest获取的所有信息都来自http请求报文。HttpResponse1.简介 HttpResponse是对响应报文进行设置的一个对象。通过context. Response 能够得到HttpResponse对象。2.截图 通过Visual Studio 可以观察到context. Response会得到一个HttpResponse对象。clipboard[1]3.重定向 Redirect()重定向;Redirect是向浏览器发回302重定向,是通知浏览器“请重新访问url这个网址”,这个过程经历了服务器通知浏览器“请重新访问url这个网址”和浏览器接到命令访问新网址的过程。使用报文工具查看整个响应过程的Http报文。用Redirect因为是浏览器自己去重新访问新网址的,所以在地址栏中是可以看到网址的变化的。4.End()End()将当前所有缓冲的输出发送到客户端,停止该页的执行。通过对End()进行try,发现是是抛出了异常。所以End()之后的代码就不会执行了。context. Server1.描述 Server是一个HttpServerUtility类型的对象,不是一个类名2.MapPath MapPath("~/a.htm")将虚拟路径(~代表项目根目录)转换为磁盘上的绝对路径,操作项目中的文件使用。3.HtmlEncode 和 HtmlDecode HtmlEncode、 HtmlDecode:HTML编码解码。Encode为的是把特殊字符转义显示4.UrlEncode和 UrlDecode UrlEncode、 UrlDecode:url编码解码。汉字、特殊字符(空格、尖括号)等通过Url传递的时候要编码

来源:http://www.cnblogs.com/mcad/p/4345744.html

转载于:https://www.cnblogs.com/xiaoyaodijun/p/4350873.html

你可能感兴趣的文章
spring4新功能官方下载地址
查看>>
Cocos Creator BMFont位图生成工具
查看>>
import static和import的区别
查看>>
联想 k2450 温度、耗电试验
查看>>
从MyEclipse到IntelliJ IDEA ——让你脱键盘,全键盘操作
查看>>
Python-字典
查看>>
Android Studio ndk-Jni开发详细
查看>>
Android 跨进程通信基础
查看>>
javafx官方文档学习之二Scene体系学习一
查看>>
VM结构、GC工作机制详解
查看>>
数据字典 加载到 web 项目的 application 全局
查看>>
我的网站搭建 (第十七天) celery 定时刷新缓存
查看>>
dubbo的provider和consumer的demo
查看>>
倒计时效果
查看>>
JVM学习笔记之四:分代垃圾回收
查看>>
杨辉三角(C++)
查看>>
C++ 类的大小计算
查看>>
Android 使用摄像头拍照
查看>>
Session与request的使用
查看>>
Node.js session 存储的几种方法
查看>>