导入源文件

选中按ctrl + shift + t进入

Struts2执行过程

画图分析过程

过滤器在服务器启动时创建,servlet在第一次访问时创建

查看源代码

public class StrutsPrepareAndExecuteFilter implements StrutsStatics, Filter {
protected PrepareOperations prepare;
protected ExecuteOperations execute;
protected List<Pattern> excludedPatterns = null;
public void init(FilterConfig filterConfig) throws ServletException {
InitOperations init = new InitOperations();
Dispatcher dispatcher = null;
try {
FilterHostConfig config = new FilterHostConfig(filterConfig);
init.initLogging(config);
dispatcher = init.initDispatcher(config);
init.initStaticContentLoader(config, dispatcher); prepare = new PrepareOperations(dispatcher);
execute = new ExecuteOperations(dispatcher);
this.excludedPatterns = init.buildExcludedPatternsList(dispatcher); postInit(dispatcher, filterConfig);
} finally {
if (dispatcher != null) {
dispatcher.cleanUpAfterInit();
}
init.cleanup();
}
}
/**
* Callback for post initialization
*/
protected void postInit(Dispatcher dispatcher, FilterConfig filterConfig) {
}
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
try {
if (excludedPatterns != null && prepare.isUrlExcluded(request, excludedPatterns)) {
chain.doFilter(request, response);
} else {
prepare.setEncodingAndLocale(request, response);
prepare.createActionContext(request, response);
prepare.assignDispatcherToThread();
request = prepare.wrapRequest(request);
ActionMapping mapping = prepare.findActionMapping(request, response, true);
if (mapping == null) {
boolean handled = execute.executeStaticResourceRequest(request, response);
if (!handled) {
chain.doFilter(request, response);
}
} else {
execute.executeAction(request, response, mapping);
}
}
} finally {
prepare.cleanupRequest(request);
}
}
public void destroy() {
prepare.cleanupDispatcher();
}
}

1 过滤器在服务器启动时候创建,创建过滤器时候执行init方法

(1)在init方法中主要加载配置文件

- 包含自己创建的配置文件和struts2自带配置文件

** struts.xml

** web.xml

最新文章

  1. bzoj1492 斜率优化|cdq分治
  2. Spring Boot with Spring Data JPA (1) - Concept
  3. [bzoj3813]奇数园
  4. Node.js异常处理
  5. Android Socket 聊天室示例
  6. 修改IIS7中ASP的上传文件大小限制
  7. input(file)浏览按钮美化 (巨简单),网上那些都弱爆了
  8. Android:广播接收器(BroadCastReceiver)要点随笔。
  9. Struts2框架学习(二) Action
  10. JavaWeb(三)JSP概述
  11. HDU 2082 找单词
  12. ubuntu18.04修改ssh登录欢迎信息
  13. project 2013 工时完成百分比不会自动更新填充
  14. CentOS7下安装Gitlab社区版【安装步骤、IP改域名、修改端口】
  15. BZOJ1047[HAOI2007]理想的正方形——二维ST表
  16. Oralce安装、使用过程中出现的问题
  17. KPPW2.7 漏洞利用--文件上传
  18. Linux命令: 编辑模式移动光标
  19. Sql Server tempdb原理-启动过程解析实践
  20. jquery源码解析:jQuery数据缓存机制详解1

热门文章

  1. windows系统同时连接多个openvpn账户
  2. C#:(问题)已有打开的与此 Command 相关联的 DataReader,必须首先将它关闭
  3. SCF: 简单配置门面
  4. Centos网络时好时超时问题解决
  5. 【LeetCode】89. Gray Code (2 solutions)
  6. 工作总结 Rezor 里面的一些小知识----自定义类型 放在标签值中 会直接跳过去
  7. linux 源码安装 Nginx
  8. 有道翻译 / 百度翻译Api
  9. springboot 整合 rabbitmq
  10. Python目录常用操作