◆当Servlet容器启动后,ActionServlet被加载就立即执行init()方法。下面是inti()方法初始化的流程: (1)调用initInternal(),初始化框架内在的消息资源,如系统日志相关的通知,警告和错误消息。 (2)调用initOther()方法,从web.xml文件中加载ActionServlet的初始化参数,例如config参数 (3)initServlet()方法,从web.xml文件中加载ActionServlet的URL映射信息。此外还会注册web.xml和struts配置文件所使用的DTD文件,用来验证web.xml和Struts配置文件的语法 (4)调用initModuleConfig(),加载并且解析默认子应用模块的Struts配置文件,创建ModuleConfig对象,把它存在ServletContext中。 (5)调用initModuleMessageResources(),加载子应用模块的消息资源,创建MessageRources对象,存在ServletContext中。 (6)调用initModuleDataSources(),加载数据源 (7)调用initModulePlugins(),加载默认的子应用模块的所有插件 (8)当默认的子应用模块被成功的初始化以后,如果还包括其他子应用模块,将流程重复(4)~(7) ◆无论用户是以何种方式请求,ActionServlet将会在process()方法中来处理请求。 ModuleUtils.getInstance().selectModule(request,getServletContext()); getRequestProcessor(getModuleConfig(request)).process(request,response); 第一步:选择当前处理的子模块,将与之对应的ModuleConfig和MessageResources对象存在request范围中,这样其余的组件就可以读取这些对象,获得应用配置信息和消息资源 第二步:获得RequestProcessor类的实例,再调用RequestProcessor的process()方法来完成预处理的请求 ◆Destroy()方法,销毁ActionServlet
struts-ActionServlet
最新推荐文章于 2017-04-27 17:44:10 发布