Posted on 2007-06-16 17:56
roy_johnson 阅读(983)
评论(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完成应用模块的加载。