欢迎来到天天文库
浏览记录
ID:26767939
大小:725.50 KB
页数:36页
时间:2018-11-29
《struts2框架流程详细分析范文》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、WORD完美格式编辑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.initLogging(con
3、fig); 12. //TODO 创建Dispatcher 注册加载器 执行加载器 创建容器 解析xml 13. Dispatcher dispatcher = init.initDispatcher(config); 14. init.initStaticContentLoader(config, dispatcher); 15. //预处理类 请求处理时才会真正用到 16. //1.主要负责在每次请求 创建ActionContext 清除ActionContext 17.
4、 //2.当接收到一个请求时 通过uri查找 ActionConfig 创建ActionMapping 18. prepare = new PrepareOperations(filterConfig.getServletContext(), dispatcher); //处理请求 Delegate 19. execute = new ExecuteOperations(filterConfig.getServletContext(), dispatcher); this.excludedPatterns = init.buildE
5、xcludedPatternsList(dispatcher); 20.//空实现 留作扩展 21. postInit(dispatcher, filterConfig); 22. } finally { 23. init.cleanup(); 24. } 25. } InitOperations类似与一个Delegate主要负责实例化Dispatche 再把初始化操作转交给Dispatcheinit处理1.public Dispatcher initDispatcher( HostConfig filterConfig ) {
6、 2. //创建Dispatcher 3. Dispatcher dispatcher = createDispatcher(filterConfig); 4. //核心方法 Container容器的创建 xml解析在此方法发生 5. dispatcher.init(); 6. return dispatcher; 7.} 8. 9.private Dispatcher createDispatcher( HostConfig filterConfig ) { 10. Map params = new
7、 HashMap(); 11. for ( Iterator e = filterConfig.getInitParameterNames(); e.hasNext(); ) { 12. String name = (String) e.next(); 13. String value = filterConfig.getInitPara
此文档下载收益归作者所有