欢迎来到天天文库
浏览记录
ID:22785301
大小:829.00 KB
页数:32页
时间:2018-10-31
《struts2框架流程详细分析》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、StrutsPrepareAndExecuteFilter实现了Filter接口 init方法为初始化入口StrutsPrepareAndExecuteFilterinit方法 1. public void init(FilterConfig filterConfig) throws ServletException { 2. //初始化辅助类 类似一个Delegate 3. InitOperations init = new InitOperations(); 4. try { 5. // FilterHostConfig 封装了
2、FilterConfig参数对象 6. FilterHostConfig config = new FilterHostConfig(filterConfig); 7. //LoggerFactory配置加载 8.//如果没有web.xml 没有配置“loggerFactory”参数 尝试org.apache.commons.logging.LogFactory9. //如果失败 使用JdkLoggerFactory 10. //TODO SPI 11. init.initLoggi
3、ng(config); 12. //TODO 创建Dispatcher 注册加载器 执行加载器 创建容器 解析xml 13. Dispatcher dispatcher = init.initDispatcher(config); 14. init.initStaticContentLoader(config, dispatcher); 15. //预处理类 请求处理时才会真正用到 16. //1.主要负责在每次请求 创建ActionContext 清除ActionContex
4、t 17. //2.当接收到一个请求时 通过uri查找 ActionConfig 创建ActionMapping 18. prepare = new PrepareOperations(filterConfig.getServletContext(), dispatcher); //处理请求 Delegate 19. execute = new ExecuteOperations(filterConfig.getServletContext(), dispatcher); this.excluded
5、Patterns = init.buildExcludedPatternsList(dispatcher); 20.//空实现 留作扩展 21. postInit(dispatcher, filterConfig); 22. } finally { 23. init.cleanup(); 24. } 25. } InitOperations类似与一个Delegate主要负责实例化Dispatche 再把初始化操作转交给Dispatcheinit处理1.public Dispatcher initDispatche
6、r( HostConfig filterConfig ) { 2. //创建Dispatcher 3. Dispatcher dispatcher = createDispatcher(filterConfig); 4. //核心方法 Container容器的创建 xml解析在此方法发生 5. dispatcher.init(); 6. return dispatcher; 7.} 8. 9.private Dispatcher createDispatcher( HostConfig filterConfig ) { 1
7、0. Map params = new HashMap(); 11. for ( Iterator e = filterConfig.getInitParameterNames(); e.hasNext(); ) { 12. String name = (String) e.next(); 13. String value = filterConfig.getInitParameter(name
此文档下载收益归作者所有