zoukankan      html  css  js  c++  java
  • 读书片断之 开发自定义HTTP模块

    阅读这本书第八章《ASP.NET请求处理框架》
    8.6 开发自定义HTTP模块
    以下的代码片断是为了实现一个支持URL重写的HTTP模块。
    多数的Web应用程序使用查询字符串在一个页面和另一个页面之间传输数据。这会给用户记忆和使用URL带来困难。
    如:http://localhost/Articles/Ariticles.aspx?AuthorName=Smith
    这样的URL不易记忆,且可能导致各种可用性问题。如果允许使用以下URL来访问一页面,那么站点访问者将感到更加轻松:
    http://localhost/Articles/Smith.aspx

    HTTP模块ArticlesModule
     
     1using System;
     2using System.Text.RegularExpressions;
     3using System.Web;
     4
     5namespace HttpModuleTest
     6{
     7    /// <summary>
     8    /// This Class finish URL rewriting.
     9    /// </summary>

    10    public class ArticlesModule : IHttpModule
    11    {
    12        public ArticlesModule()
    13        {
    14            //
    15            // TODO: Add constructor logic here
    16            //
    17        }

    18
    19        public void Init(HttpApplication context)
    20        {
    21            context.BeginRequest += new EventHandler(context_BeginRequest);
    22        }

    23
    24        public void Dispose()
    25        {
    26
    27        }

    28
    29        private void context_BeginRequest(object sender, EventArgs e)
    30        {
    31            HttpApplication app = sender as HttpApplication;
    32            HttpContext context = app.Context;
    33
    34            Regex regex = new Regex(@"Articles/(.*)\.aspx", RegexOptions.IgnoreCase);
    35            Match match = regex.Match(context.Request.Path);
    36
    37            if (match.Success)
    38            {
    39                string newPath = regex.Replace(context.Request.Path, @"Articles.aspx?AuthorName=$1");
    40                context.RewritePath(newPath);
    41            }

    42        }

    43    }

    44}

    45

  • 相关阅读:
    解决hung_task_timeout_secs问题【方法待校验】
    C++面向对象程序设计 学习心得
    试水训练1
    并查集
    ACM儿童节热身训练
    图论部分学习小结
    ACM儿童节热身训练
    堆及其应用学习小结
    ACM本周小结
    POJ-3273-Monthly Expense
  • 原文地址:https://www.cnblogs.com/adam/p/758393.html
Copyright © 2011-2022 走看看