ActionServlet初始化

public void init() throws ServletException {
  /*
   調用initInternal()方法,初始化struts框架內在的消息資源,如與系統日誌相關的通知、警告和錯誤信息。
   */
        initInternal();
   /*
  調用initOther(),從web.xml文件中加載ActionServlet的初始化參數,如config,debug,convertNull等,具體參數參見「ActionServlet參數設置.doc」
         */
        initOther();
        /*
   調用initServlet(),從web.xml文件中加載ActionServlet的URL映射信息。此外還會註冊web.xml和struts配置文件所使用的DTD文件,這些DTD文件用來驗證web.xml和struts配置文件的語法
         */
        initServlet();
        getServletContext().setAttribute(Globals.ACTION_SERVLET_KEY, this);
       
        /*
        調用initModuleConfig(),加載並解析默認應用模塊的struts配置文件;建立ModuleConfig對象,把它存在ServletContext中
        */
        // Initialize modules as needed
        ModuleConfig moduleConfig = initModuleConfig("", config);
        /*
        調用intiModuleMessageResources(),加載並初始化默認應用模塊的消息資源,建立MessageResources對象,把它存在ServletContext中
        */
        initModuleMessageResources(moduleConfig);
       
        /*
        調用initModuleDataSources()方法,加載並初始化默認應用模塊的數據源。若是沒有在struts配置文件中沒有定義<data-sources>元素,就忽略這一流程
        */
        initModuleDataSources(moduleConfig);
       
        /*
        調用initModulePlugins(),加載並初始化默認應用模塊的全部插件
        */
        initModulePlugIns(moduleConfig);
        /*
         默認應用模塊配置完畢
          */
        moduleConfig.freeze();
       
        /*
        當默認子應用模塊被成功初始化後,若是應用還包括其餘子應用模塊,將重複流程4-7,分別對其餘子應用模塊進行初始化。
        */
        Enumeration names = getServletConfig().getInitParameterNames();
        while (names.hasMoreElements()) {
            String names.nextElement();
            if (!name.startsWith("config/")) {
                continue;
            }
            String prefix = name.substring(6);
            moduleConfig = initModuleConfig
                (prefix, getServletConfig().getInitParameter(name));
            initModuleMessageResources(moduleConfig);
            initModuleDataSources(moduleConfig);
            initModulePlugIns(moduleConfig);
            moduleConfig.freeze();
        }
        destroyConfigDigester();
       
        //到此,ActionServlet初始化完畢
}
init()方法流程圖以下:
相關文章
相關標籤/搜索