zoukankan      html  css  js  c++  java
  • HttpHandler过滤请求..

    记得以前写过一篇..后来找不到了..我自己也忘记怎么弄了..

    在网上找了很多的教程..写的总有瑕疵..感觉不顺畅..

    自己来一篇..

    其实很简单..

    先建立一个类  继承并实现接口 IHttpHandler

    例如:

    namespace MyHandler
    {
        public class ImageH : IHttpHandler
        {
    
            public bool IsReusable
            {
                get { return true; }
            }
    
            public void ProcessRequest(HttpContext context)
            {
           //为了演示..就不再做过多的判断..直接输出一个其他的图片 context.Response.ContentType
    = "image/JPEG"; context.Response.WriteFile("/Content/Image/error.jpg"); //context.Response.Redirect("/Home"); context.Response.End(); } } }

    相信这个类上边没有什么疑问..

    就是添加到任何地方就好..

    然后是在配置文件web.config 里的配置

    很多教程都说是这样配置的

    <system.web>
        <httpHandlers>
          <add path="*.jpg,*.jpeg,*.gif,*.png,*.bmp" verb="*" type="CustomHandler.JpgHandler,CustomHandler" />
        </httpHandlers>
     </system.web>

    但是我不知道是我运气背还是怎滴..总之就是报错.. 说什么集成模式不能运行什么的..MD老子还在VS里运行的那里能调这个..

    后来改成...

    <system.webServer>
        <handlers>
          
          <add name="jpg" path="*.jpg" verb="*" type="MyHandler.ImageH,MyHandler"/>
          <add name="png" path="*.png" verb="*" type="MyHandler.ImageH,MyHandler"/>
          <add name="html" path="*.html" verb="*" type="MyHandler.HtmlH,MyHandler"/>
          
        </handlers>
    </system.webServer>

    可以了..  

    这里边具体是为什么我没有搞明白..希望在以后的某个偶然中搞明白吧..或请路过的大神提点一二..

    也许这配置到了服务器上要改成第一种那样..但是只要保证能够运行就好..

    话说HttpHandler的另外一个作用还可以是实时生成静态页面来提供访问..

    以前做站点静态化都是修改完数据之后自动重新生成..或者手动批量生成..

    如果当时会用HttpHandler的话..就好的多了..

  • 相关阅读:
    Xpath语法与lxml库的用法
    Selenium--使用参考
    PhantomJS的替代品--无头浏览器(Headless Chrome)
    为什么只有一个元素的tuple要加逗号?
    反爬利器--设置代理服务器
    LeetCode 221. 最大正方形 | Python
    LeetCode 572. 另一个树的子树 | Python
    LeetCode 98. 验证二叉搜索树 | Python
    LeetCode 45. 跳跃游戏 II | Python
    LeetCode 25. K 个一组翻转链表 | Python
  • 原文地址:https://www.cnblogs.com/iiwen/p/4764079.html
Copyright © 2011-2022 走看看