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; }