JFinalFilter源码解析--初始化

web.xmljava

<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    程序的入口 web

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    进行初始化动做 app



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;
    }
相关文章
相关标签/搜索