Home 关于Struts2
Post
Cancel

关于Struts2

Struts2实现的MVC模式

核心控制器:Filter拦截器。将Servlet解耦,可以用单元测试来对Action控制层进行测试。

Struts2执行流程

  1. 定义FilterDispatcher,一般出现的过滤器最后。
  2. FilterDispatcher将请求转发给ActionMapper,ActionMapper负责识别当前请求是否需要Struts2做出处理,如果需要处理的话,ActionMapper告诉FilterDispatcher需要处理这个请求,FilterDispatcher就建立ActionProxy对象,ActionProxy对象代理Action的运行及处理过程。
  3. ActionProxy在创建时不知运行哪个Action,只知道url请求,会从ConfigurationManager中询问要调取哪个Action(struts.xml定义)。
  4. ActionProxy取得Action对象同时获取相关拦截器以及可能使用的Result结果信息,着手建立ActionInvocation对象,ActionInvocation对象描述了Action运行的整个过程,并且调用相关的拦截器(Action调用之前部分),ActionInvocation做了一个很重要的工作,把Request请求的参数封装到ActionContext对象里,具体是封装到ActionContext中的值栈(ValueStack)。
  5. 调用Action类,执行Action中默认的execute方法(可以自定义),返回一个结果Result,然后选择在struts.xml中配置的页面。
  6. 按照相反次序执行拦截器链。
  7. ActionInvocation对象执行完获得HttpServletResponse对象,然后以与过滤器配置定义相反的顺序执行过滤器向用户展示响应的结果。

必须的jar包

1
2
struts-core.xxx.jar
xwork-core.xxx.jar。
This post is licensed under CC BY 4.0 by the author.