Ashx入门

Ashx入门简介一般处理程序 HttpHandler 是 net 众多 web 组件的一种 ashx 是其扩展名 一个 httpHandler 接受并处理一个 http 请求 类比于 java 中的 servlet 类比于继承 httpServlet 在 net 中需要实现 IhttpHandler 接口 这个接口有一个成员 IsReusable 一个待实现的方法 ProcessReque HttpContextc nbsp 程序在 pr

简介

一般处理程序(HttpHandler)是.net众多web组件的一种,ashx是其扩展名。一个httpHandler接受并处理一个http请求,类比于java中的servlet。类比于继承httpServlet,在.net中需要实现IhttpHandler接口,这个接口有一个成员IsReusable,一个待实现的方法ProcessRequest(HttpContextctx) 。程序在processRequest方法中处理接受到的Http请求。成员IsReusable的使用方法后文会有介绍。一个http Handler的例子是这样的:

<% @ webhandler language="C#"class="AverageHandler" %> using System; using System.Web; public class TestHandler : IHttpHandler { public bool IsReusable { get { return true; } } public voidProcessRequest(HttpContext ctx) { ctx.Response.Write("hello"); } }

浏览器地址栏请求这个ashx,会打印一个hello字符串

ashx在第一期请求的时候才编译,而不是预编译,所以建议在web.config里直接指定所对应的HttpHandler


IsReusable属性



IsReusableIhttpHandler接口的成员,这个成员的值的含义是:此IhttpHnadler的实例是否可以被用来处理多个请求。MSDNIsReusable的解释为:该值指示其他请求是否可以使用IHttpHandler实例。

所以指定IsReusabletrue的前提是:



    1. processHandler方法要线程安全
    2. 不依赖Request项。

ashx中访问Session

让自己的ashx类显式的实现一个接口 IReadOnlySessionState,示例如下:

 

<% @ webhandler language="C#" class="DownloadHandler" %> using System; using System.Web; using System.Web.SessionState ; public class DownloadHandler : IHttpHandler, IReadOnlySessionState { public bool IsReusable { get { return true; }} public void ProcessRequest(HttpContext ctx) { //访问session //ctx.Session["fred"]); } } 

如果要读写Session的值,那么只要实现 IRequiresSessionState 接口就即可,这两个接口没有待实现的方法

 





版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/226108.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 上午7:48
下一篇 2026年3月17日 上午7:49


相关推荐

  • vue组件注册可以是以下哪种方式_注册组件失败怎么办

    vue组件注册可以是以下哪种方式_注册组件失败怎么办组件的组织通常一个应用会以一棵嵌套的组件树的形式来组织:例如,你可能会有页头、侧边栏、内容区等组件,每个组件又包含了其它的像导航链接、博文之类的组件。为了能在模板中使用,这些组件必须先注册以便

    2022年7月30日
    7
  • flex布局实现div内容居中

    flex布局实现div内容居中lt divclass list col detail gt 1002 lt div gt list col detail width 180px height 78px display flex align items center justify content center background ff0000

    2026年3月17日
    2
  • fastjson的json字符串转List

    fastjson的json字符串转Listfastjson的json字符串转Listpom依赖<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.62</version></dependency>json字符串转List:JSONObject.paresArray(str,class)Str

    2022年5月15日
    46
  • java连接mysql数据库的详细步骤

    java连接mysql数据库的详细步骤java 连接 mysql 数据库的详细步骤连接说明 a mysql 连接的驱动 b mysql 数据库的安装 c eclipsee 数据库服务是否打开 控制面板 管理工具 服务 找到 mysql 对应服务 f 创建一个数据库 1 新建 java 项目然后新建一个文件夹 libs 用来放各种外部包 2 在包里面加入连

    2026年3月19日
    2
  • 【夏虫语冰】visio2013安装出错,您输入的产品密钥无法在此计算机上使用,错误25004[通俗易懂]

    【夏虫语冰】visio2013安装出错,您输入的产品密钥无法在此计算机上使用,错误25004[通俗易懂]问题的原因并不是您所下载的Office程序无法安装上去,而是所使用的密钥不能再授权安装和使用Office产品。如果在此电脑上之前已经安装并使用过了试用版本的Office的话,是不能重复不断地继续使用试用版本的Office和申请的授权密钥的。Office卸载工具有很多,下面介绍几个常见的工具:1、微软新版工具(未测试,微软官网无法下载)“SetupProd_OffScrub.exe”是微软新推出来Office卸载工具。下载链接&官方教程见下:从PC…

    2025年9月14日
    11
  • web前端网页设计制作_网页制作教程

    web前端网页设计制作_网页制作教程简易旅游网,静态网页制作页面效果

    2022年8月31日
    10

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号