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