基于Http管道技术的伪静态生成

 基于Http管道技术的伪静态生成

IIS其实处理不了aspx网页,只是转交给aspnet_isapi.dll来处理,在此处理过程中,微软公开了两个非常重要的接口
IHttpHandler
IHttpModule

 

首先配置web.config (也可动态添加,参考《动态添加删除web.config节点》)

<httpHandlers>
 <add verb="*" path="*.jtx" type="Web练习.MyHandler" validate="false" />
 </httpHandlers>

这里 verb表示 类型[get,put,post],*表示所有,path表示处理页面的后缀名是什么,type表示将这些后缀名的请求交付给"Web练习.MyHandler"这个类处理。

整体就是说,将后缀名为.jtx的网页交给MyHandler类来处理。

MyHandler处理类,是自定义的一个类,但要处理网页,就必须继承并实现IHttpHandler接口,如下

 

public class MyHandler: IHttpHandler
    {

        #region IHttpHandler 成员

        public MyHandler()
        {
            //默认构造器
        }

        public bool IsReusable
        {
            get
            {
                return true;//这里不管,只要返回true就行了。
            }
        }

        public void ProcessRequest(HttpContext context)
        {
            HttpRequest Request = context.Request; //HttpContext 中包含两种信息 Request和Respones 其实就是请求和输出。
            HttpResponse Respones = context.Response;//HttpContext 中包含两种信息 Request和Respones 其实就是请求和输出。
            string urlPaht = Request.FilePath;
            if (urlPaht.EndsWith("jtx"))//可以构造更复杂的判断过程在此拼接url字符串以及后缀名,输出html代码,生成网页。
            {
                Respones.Write("<br>请求*.jtx页面成功!</br>");//可以输出html代码,所以可以自己读取模板替换后输出
            }

        }

        #endregion
    }

2009-11-04-13:27:59

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值