- 启动web服务器时,解析web.xml,初始化servlet
- 接收jsp页面.action的请求
- 请求会提交到一系列Filter过滤器
- 请求到达FilterDispatch(核心类)后,核心类会询问ActionMapper是否调用某个Action来处理请求;(每次发送一个Request,FilterDispatcher都会调用doFilter方法,doFilter方法中将struts.xml被解析成ActionMapper)
- 如果ActionMapper 决定调用某个Action,核心类会将请求提交到ActionProxy, 由其进行处理
- ActionProxy通过Configuration Manager询问框架的Configuration (Struts.xml)配置文件,找到需要调用的Action类(Action被调用者)
- ActionProxy创建一个ActionInvocation(Action的调用者)实例,而ActionInvocation通过代理模式调用Action类;在调用Action前ActionInvocation会根据配置加载Action的所有拦截器
- Action执行完毕后,返回一个result字符串,此时再按相反的顺序通过Interceptor拦截器
- 最后通过struts.xml中的配置找到对应的result
- 响应的返回是通过我们在web.xml中配置的过滤器
struts2的工作流程
最新推荐文章于 2020-05-11 18:05:32 发布