Posted on 2007-06-16 17:56
roy_johnson 閱讀(992)
評論(1) 編輯 收藏 所屬分類:
Struts
Struts 初始化處理流程
根據在web.xml中配置的初始化參數,Servlet容器將決定在在容器的第一次啟動,或第一次客戶請求ActionServlet 的時機加載ActionServlet ,不管哪種方式加載,和其它Servlet一樣,ActionServlet 的init( )方法將被調用,開始初始化過程。讓我們來看看在初始化過程中將發生些什么,理解了這些,對于我們debug和擴展自己的應用更加得心應手。
1 初始化框架的內部消息綁定,這些消息用來輸出提示,警告,和錯誤信息到日志文件中。
org.apache.struts.action.ActionResources用來獲取內部消息;
2 加載web.xml中定義的不同參數,用以控制ActionServlet 的不同行為,這些參數包括 config, debug, detail, and convertNull ;
3 加載并初始化web.xml中定義的servlet 名稱和servlet映射信息。通過初始化,框架的各種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;
6 Struts配置文件中聲明的每一個數據源被加載并且初始化,如果沒有配置數據源,這一步跳過;
7 加載并初始化Struts配置文件中指定的插件。每一個插件的init()方法被調用;
8 當默認應用加載完成,init()方法判斷是否有應用模塊需要加載,如果有,重復4—7完成應用模塊的加載。