码迷,mamicode.com
首页 > 其他好文 > 详细

模块初始化实现地址的伪静态

时间:2015-03-30 15:51:35      阅读:99      评论:0      收藏:0      [点我收藏+]

标签:

在web.config配置文件<system.web>  </system.web>中写代码 (在2.0版本中)(在3.5版本中有配置文件只需把<add />中的内容换掉)

 <httpModules >
        <add name="httpmodule" type="HttpModule"/>
      </httpModules>

在App_Code文件中创建HttpModule 类文件 然后继承接口 IHttpModule 并实现接口

public class HttpModule:IHttpModule
{

    public void Dispose()
    {
        throw new NotImplementedException();
    }

    public void Init(HttpApplication context)
    {
        context.BeginRequest += new EventHandler(context_BeginRequest); //在asp.net响应请求时的第一个事件
    }

   
    // 地址2: http://localhost:3087/weijingtai/1.aspx     //伪静态页面
    // 地址1: http://localhost:3087/weijingtai/News.aspx?id=1
     //此事件的作用是:
     //将连接地址 1.aspx 变为 News.aspx?id=1
    void context_BeginRequest(object sender, EventArgs e)
    {
        HttpApplication application = sender as HttpApplication;
        HttpContext context = application.Context;  //获取当前请求的http信息
        string filepath = context.Request.RawUrl;   //获取当前请求的原始url
        int i = filepath.LastIndexOf(‘/‘);   //得到文件名开始的索引
        string fileName = filepath.Substring(i);
        Regex rg = new Regex(@"/(\d+).aspx"); //创建正则表达式
        if (rg.IsMatch(fileName))
        {
            Match match = rg.Match(fileName);
            string id = match.Groups[1].Value;  //获取文件名
            context.RewritePath("News.aspx?id="+id);  //拼接地址
            
        }

    }
}

例子:
 <li><a href="News.aspx?id=1">这是第一条新闻</a></li>  连接1
 <li><a href="1.aspx">这是第一条新闻</a></li>           连接2
 连接1 用 地址1 请求响应 在响应前经过context_BeginRequest事件 由于不匹配正则表达式 所以事件没起作用
 然后响应页面做出回应
  if (Request.QueryString["id"] != null)
        {
            Response.Write("这是第" + Request.QueryString["id"] + "条新闻");
        }
 回发给请求页面
连接2 用 地址2 请求响应 在响应前经过context_BeginRequest事件 由于匹配正则表达式 所以将地址2变为地址1 
 然后响应页面做出回应
  if (Request.QueryString["id"] != null)
        {
            Response.Write("这是第" + Request.QueryString["id"] + "条新闻");
        }
 回发给请求页面

模块初始化实现地址的伪静态

标签:

原文地址:http://www.cnblogs.com/jin7yan/p/4378014.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!