zoukankan      html  css  js  c++  java
  • Tomcat中的Listener源码片段解读

      @Override
        public <T extends EventListener> void addListener(T t) {
            if (!context.getState().equals(LifecycleState.STARTING_PREP)) {
                throw new IllegalStateException(
                        sm.getString("applicationContext.addListener.ise",
                                getContextPath()));
            }
    
            boolean match = false;
            if (t instanceof ServletContextAttributeListener ||
                    t instanceof ServletRequestListener ||
                    t instanceof ServletRequestAttributeListener ||
                    t instanceof HttpSessionIdListener ||
                    t instanceof HttpSessionAttributeListener) {
                context.addApplicationEventListener(t);
                match = true;
            }
    
            if (t instanceof HttpSessionListener
                    || (t instanceof ServletContextListener &&
                            newServletContextListenerAllowed)) {
                // Add listener directly to the list of instances rather than to
                // the list of class names.
                context.addApplicationLifecycleListener(t);
                match = true;
            }
    
            if (match) return;
    
            if (t instanceof ServletContextListener) {
                throw new IllegalArgumentException(sm.getString(
                        "applicationContext.addListener.iae.sclNotAllowed",
                        t.getClass().getName()));
            } else {
                throw new IllegalArgumentException(sm.getString(
                        "applicationContext.addListener.iae.wrongType",
                        t.getClass().getName()));
            }
        }

    这段原代码,可以看到Listener一定要继承EventListener,然后conext,到底什么是上下文,监听器是其一部分。

  • 相关阅读:
    dfs介绍
    UVA11149 矩阵快速幂
    UVA1476 三分法
    漂亮的表达式!(不断补充)
    BC Round#33 B(10的18次方,快速乘法+快速幂取余)
    UVA 1639(组合数学)
    UVA 10612(数论找规律)
    小模板
    1589象棋(大模拟)
    bnuoj 29368 Check the Identity(栈)
  • 原文地址:https://www.cnblogs.com/Robin008/p/10205211.html
Copyright © 2011-2022 走看看