zoukankan      html  css  js  c++  java
  • (实战篇)httpmoudle登场亮相

    承接上一篇说了httphandler使用的一个小应用,这一篇来看看httpmoudle的一次小亮相,

    同样记录下来,以作之后参考。

    (1)同样先配置

    
    
     <httpModules>
          <add name="OnlineModule" type="CIT.OA.CommonUI.HttpModule.OnlineModule, CIT.OA.CommonUI, Version=1.0.0.0, Culture=neutral"/>
          <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        </httpModules>
    
    
    
    
    

    (2)配置之后所有的请求都必须经过CIT.OA.CommonUI.HttpModule.OnlineModule这个类处理,而此类究竟做了啥呢?
    原来是一个在线统计的实现。
      public class OnlineModule : IHttpModule, IReadOnlySessionState
        {
            /// <summary>
            ///
            /// </summary>
            public OnlineModule()
            {
            }
     
            public void Init(HttpApplication context)
            {
                context.AcquireRequestState += new EventHandler(this.context_AcquireRequestState);
            }
     
            private void context_AcquireRequestState(object sender, EventArgs e)
            {
                HttpApplication app = (HttpApplication)sender;
                if (CommonFunc.ObjectToNullStr(app.Context.Handler).EndsWith("aspx"))
                {
                    string sessionId = FWConfig.CurContext.Session != null ? FWConfig.CurContext.Session.SessionID : String.Empty;
                    UserInfo u = FWConfig.CurContext.Session[FWConfig.UserInfoSession] as UserInfo;
     
                    if (CommonFunc.IsNotNullString(sessionId) && u != null)
                    {
                        OnLineHelper.AddOnLineData(sessionId, u.LoginID);
                    }
                }
            }
    
    
    
    
    


    总结:httpmoudle和httphandler可以做很多事情,这里以最简单的实例来说明,希望可以窥一斑而知全豹。
    再次说下它们的区别:前者好比高速公路,只要是车经过(请求),都必须经过它处理,
    而后者好比交警,只有固定的请求,如违规,才需要处理。
  • 相关阅读:
    高可用——Keepalived安装部署使用详解
    Java—File类详解及实践
    MySQL—设置数据库(库、表等)不区分大小写
    MySQL—Mysql与MariaDB启停命令的区别
    Linux—微服务启停shell脚本编写模板
    SpringBoot—集成AOP详解(面向切面编程Aspect)
    Java—Map集合详解
    手动搭建I/O网络通信框架1:Socket和ServerSocket入门实战,实现单聊
    Java高效编程:总结分享
    Redis的几种应用实战
  • 原文地址:https://www.cnblogs.com/jangwewe/p/2970655.html
Copyright © 2011-2022 走看看