Struts初始化處理

根據在web.xml中配置的初始化參數,當容器第一次啓動或者ActionServlet的請求第一次發生的時候,將會加載struts ActionServlet,不管哪種方式加載,和其它Servlet一樣,ActionServlet的init( )方法將被調用.這個方法的調用,將在所有的其他的請求發生之前完成.當init()方法被調用以後,struts將會完成一系列的複雜的初始化工作,讓我們來看看在初始化過程中將發生些什麼,理解了這些,對於我們debug和擴展自己的應用更加得心應手。
1、 初始化框架的內部消息綁定,這些消息用來輸出提示,警告,和錯誤信息到日誌文件中。org.apache.struts.action.ActionResources用來獲取內部消息;
2、 加載web.xml中定義的不同參數,用以控制ActionServlet的不同行爲,這些參數包括config, debug, detail, and convertNull ;
3、 加載並初始化web.xml中定義的servlet 名稱和servlet映射信息(mapping info)。通過初始化,框架的各種DTD被註冊,DTD用來在下一步校驗配置文件的有效性;
4、 爲默認應用加載並初始化Struts配置文件,配置文件,即初始化參數config指定的文件。默認配置文件被解析,產生一個ApplicationConfig對象存於ServletContext中。可以通過關鍵字org.apache.struts.action.APPLICATION從ServletContext中獲取ApplicationConfig;
5、 Struts配置文件中指定的每一個消息資源都被加載,初始化,並存在ServletContext的合適區域(基於每個message-resources元素的key屬性),如果key屬性沒有設置,則爲org.apache.struts.action.MESSAGE;因爲key的唯一性,僅僅只有一個消息資源能夠以默認的方式存儲下來
6、 Struts配置文件中聲明的每一個數據源被加載並且初始化,如果沒有配置數據源,這一步跳過;
7、 加載並初始化Struts配置文件中指定的插件。每一個插件的init()方法被調用;
8、 當默認應用加載完成,init()方法判斷是否有應用模塊需要加載,如果有,重複步驟4—7萬成應用模塊的加載。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章