Struts2框架流程详细分析范文

上传人:cl****1 文档编号:544276261 上传时间:2022-10-28 格式:DOC 页数:32 大小:380.50KB
返回 下载 相关 举报
Struts2框架流程详细分析范文_第1页
第1页 / 共32页
Struts2框架流程详细分析范文_第2页
第2页 / 共32页
Struts2框架流程详细分析范文_第3页
第3页 / 共32页
Struts2框架流程详细分析范文_第4页
第4页 / 共32页
Struts2框架流程详细分析范文_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《Struts2框架流程详细分析范文》由会员分享,可在线阅读,更多相关《Struts2框架流程详细分析范文(32页珍藏版)》请在金锄头文库上搜索。

1、.StrutsPrepareAndExecuteFilter实现了Filter接口 init方法为初始化入口StrutsPrepareAndExecuteFilter init方法1. publicvoidinitthrowsServletException2. /初始化辅助类类似一个Delegate3. InitOperationsinit=newInitOperations;4. try5. /FilterHostConfig封装了FilterConfig参数对象6. FilterHostConfigconfig=newFilterHostConfig;7. /LoggerFactory配

2、置加载8. /如果失败使用JdkLoggerFactory9. /TODOSPI10. init.initLogging;11. /TODO创建Dispatcher注册加载器执行加载器创建容器解析xml12. Dispatcherdispatcher=init.initDispatcher;13. init.initStaticContentLoader;14. /预处理类请求处理时才会真正用到15. /1.主要负责在每次请求创建ActionContext清除ActionContext16. /2.当接收到一个请求时通过uri查找ActionConfig创建ActionMapping17. p

3、repare=newPrepareOperationsfilterConfig.getServletContext,dispatcher;/处理请求Delegate18. execute=newExecuteOperationsfilterConfig.getServletContext,dispatcher;this.excludedPatterns=init.buildExcludedPatternsList;19. /空实现留作扩展20. postInit;21. finally22. init.cleanup;23. 24. InitOperations 类似与一个Delegate 主

4、要负责实例化Dispatche再把初始化操作转交给Dispatche init处理1. publicDispatcherinitDispatcher2. /创建Dispatcher3. Dispatcherdispatcher=createDispatcher;4. /核心方法Container容器的创建xml解析在此方法发生5. dispatcher.init;6. returndispatcher;7. 8. privateDispatchercreateDispatcher9. Mapparams=newHashMap;10. forIteratore=filterConfig.getI

5、nitParameterNames;e.hasNext;11. Stringname=e.next;12. Stringvalue=filterConfig.getInitParameter;13. params.put;14. 15. returnnewDispatcherfilterConfig.getServletContext,params;16. Dispatcher init方法 1.针对配置文件 注册不同的加载器 保存到ConfigurationManager类中的一个变量中 2.创建容器 解析xml1. publicvoidinit2. /创建配置操作管理类,会保存元素加载器3

6、. if4. configurationManager=createConfigurationManager;5. 6. try7. /*初始化各种形式加载器,保存到ConfigurationManager#containerProvidersMap集合中8. 没有真正执行加载解析逻辑*/9. /org/apache/struts2/default.properties属性文件里面定义了一系列struts常量10. init_DefaultProperties;/111. /web.xml配置的config参数配置多个用,分开12. /如果没有该参数默认为struts-default.xml框

7、架级,struts-plugin.xml框架级,struts.xml系统级别13. /根据文件名称创建加载器加载xml主要有一下两个解析器14. /XmlConfigurationProviderxwork.xml,15. /StrutsXmlConfigurationProviderstruts相关配置文件配置元素加载器16. init_TraditionalXmlConfigurations;/217. /struts.locale注册18. init_LegacyStrutsProperties;/319. /实例化我们自定义的加载器保存到containerProviders集合中20.

8、 /web.xmlconfigProviders参数多个用,分开21. /配置器必须是ConfigurationProvider接口的实例22. /TODOSPI23. init_CustomConfigurationProviders;/524. /web.xml配置的init-param参数加载器最终会保存到Container容器中25. init_FilterInitParameters;/626. /TODO根据我们在struts.xml定义的常量选择插件类27. /比如集成spring会用到org.apache.struts2.spring.StrutsSpringObjectFac

9、tory28. init_AliasStandardObjects;/729. /*执行加载器*/30. /TODO创建容器解析xml真正执行加载器方法31. Containercontainer=init_PreloadConfiguration;32. /执行当前Dispatcher对象依赖关系注入33. container.inject;34. /额外动作35. init_CheckConfigurationReloading;36. init_CheckWebLogicWorkaround;37. catch38. ifLOG.isErrorEnabled39. LOG.error;4

10、0. thrownewStrutsException;41. 42. ConfigurationManager 主要管理 创建的各种加载器1. publicclassConfigurationManager2. protectedstaticfinalLoggerLOG=LoggerFactory.getLogger;3. /配置元素管理器4. protectedConfigurationconfiguration;5. protectedLockproviderLock=newReentrantLock;6. /创建的xml加载器会保存到次集合中7. privateListcontainer

11、Providers=newCopyOnWriteArrayList;Dispatcher的 createConfigurationManager方法1. protectedConfigurationManagercreateConfigurationManager2. /name-struts3. returnnewConfigurationManager;4. 1.default.properties属性文件加载器1. privatevoidinit_DefaultProperties2. /保存到ConfigurationManager加载器集合中3. configurationManager.addConfigurationProvidernewDefaultPropertiesProvider;4. 2.创建struts相关文件加载器 StrutsXmlConfigurationProvider1. privatevoidinit_TraditionalXmlConfigurations2. /web.xml配置的config3. StringconfigPaths=initParams.getco

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号