JFinalFilter源码解析--初始化

web.xml

<filter>
        <filter-name>jfinal</filter-name>
        <filter-class>com.jfinal.core.JFinalFilter</filter-class>
        <init-param>
            <param-name>configClass</param-name>
            <param-value>manager.config.ManagerConfig</param-value>
        </init-param>
    </filter>

1. JFinalFilter    程序的入口

public void init(FilterConfig filterConfig) throws ServletException {
        createJFinalConfig(filterConfig.getInitParameter("configClass"));
        
        if (jfinal.init(jfinalConfig, filterConfig.getServletContext()) == false)//交给JFinal类去初始化
            throw new RuntimeException("JFinal init error!");
        
        handler = jfinal.getHandler();
        constants = Config.getConstants();
        encoding = constants.getEncoding();
        jfinalConfig.afterJFinalStart();
        
        String contextPath = filterConfig.getServletContext().getContextPath();
        contextPathLength = (contextPath == null || "/".equals(contextPath) ? 0 : contextPath.length());
    }

2. JFinal    进行初始化动作


  • initActionMapping();初始化请求URL与请求执行者Action的映射关系

  • initHandler();初始化Handler链式结构,ActionHandler在链表尾部最后处理

  • initRender();设置编码格式、开发者模式、Render工厂(支持JSP、FreeMarker、Velocity三种视图模式)


boolean init(JFinalConfig jfinalConfig, ServletContext servletContext) {
        this.servletContext = servletContext;
        this.contextPath = servletContext.getContextPath();
        
        initPathUtil();
        
        Config.configJFinal(jfinalConfig);    // start plugin and init logger factory in this method
        constants = Config.getConstants();
        
        initActionMapping();//初始化请求URL与请求执行者Action的映射关系
        initHandler();//初始化Handler链式结构,ActionHandler在链表尾部最后处理
        initRender();//设置编码格式、开发者模式、Render工厂(支持JSP、FreeMarker、Velocity三种视图模式)
        initActiveRecord();
        initOreillyCos();
        initI18n();
        initTokenManager();
        
        return true;
    }






 


 


 


 


 


 


 


 


 


 

你可能感兴趣的:(初始化,源码解析,JFinalFilter)