.NET中一般处理程序(ashx)的使用

28 篇文章 0 订阅

一.判断提交方式

	context.Response.ContentType = "text/plain";
         string id = "0";
        //判断提交方式
         if (context.Request.RequestType.ToLower() == "get")
         {
             id = context.Request.QueryString["id"];
         }
         else
         {
            id = context.Request.Form["id"];
         }



二.ashx一般处理程序中的Session读写问题

1.要在一般处理程序中获取其他页面的session值,需要引用名空间:

using System.Web.SessionState;

2.然后继承一个接口:IRequiresSessionState,如图:

3.然后就可以获得session值了:

HttpContext context = new HttpContext();

string s =context.Session["Verifycode"].ToString();


=======================华丽的分割线==================

              一般处理程序详解

一,一般处理程序处理过程(HttpHandler)
IIS处理不了这种后缀程序通过映射表将该程序传递给ASPNET_ISAPI.DLL的程序,然后又将请求转给了网站程序
网站程序调用HttpRuntime类的静态方法处理请求,有以下步骤:
1,实现System.Web.IHttpHandle特殊接口的类
实现了该接口的类都能作为一个外部请求的目标程序
2,创建 HttpContext context 数据上下文对象,用于处理请求的所以参数数据.
(主要是httpRequest-->用于Form表单数据url 参数 和httpResponse()主要包含了FileStream对象用于保存输出的数据)
3,分析请求报文,并将数据封装到HttpWorkerRequest对象对应的属性
并调用HttpApplicationFactory的类中的静态方法来创建HttpApplication对象
(实际上是先通过httpApplication池 看有没有空闲的  没有才创建),那么
该对象会处理此次请求的所有运行过程
4,httpContex对象传入到httpApplication的时候就可以调用页面类中的ProcessRequest方法


二,服务器请求数据和接收数据
在一般处理程序中,通过HttpContext context 调用系统数据对象(属性)
Page 指向页面自身的方式
Request 读取客户端的Web请求期间发送的值
Response 封装了页面执行期返回到HTTP客户端的输出
Application 作用于整个程序运行期的状态对象
Session 会话期状态保持对象,用于跟踪单一用户的会话
Cookie 客户端保持会话信息的一种方式
Server 提更对服务器上的方法和属性的访问


1,两种简单的数据请求和接收方式
(post是通过数据报文传递的(socket),get是通过url 所以有限制大小)
1.1 通过表单传值form 可以通过post 和get 方式将数据传递给相应的页面
post方式的接收:context.Request.Form["textName"]
get 方式的接收:string name = context.Request.QueryString["name"]
1.2 通过超链接  <a href='SimpleLogin.ashx?name=hello'>test url get</a>
Request:有QueryString  Form Params 属性Params是客户提交的数据集合(可以用于post和get)


三,重定向的原理
context.Response.Redirect("hello.html"); 
Response:有write(输出) redirect(重定向) end(结束输出)


四,将数据显示到模板页
获取到模板内容
 string modelPath = context.Server.MapPath("loginmodel.html"); 
 string htmlSendBack = System.IO.File.ReadAllText(modelPath);
将内容中的标识号替换成对应的数据变量



  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值