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万成应用模块的加载。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章