-
Struts2是基于MVC设计模式的web应用框架,本质相当于一个servlet,在MVC设计模式中,Struts2作为控制器来建立模型与视图的数据交互。
-
Struts2框架优点:
1. 实现了MVC模式,程序员只需关注业务逻辑的实现。
2. 丰富的标签库
3. 提供丰富的拦截器实现
4. 通过配置文件就可以掌握整个系统各个部分之间的关系。
5. 异常处理机制,只需在配置文件中配置异常的映射,即可对异常做相应的处理。 -
缺点:
- 跳转到表示层时,需要配置页面路径。
- 数据类型转换,把所有数据作为String类型,数据结构复杂时需要自己写转换器。
-
Struts流程图
①当web容器收到请求,先经过一个标准的过滤链(ActionContextCleanUp)过滤器。
②经过Other filters,需要调用FilterDispatcher核心控制器,然后它调用ActionMapper确定请求哪个action,ActionMapper返回一个收集Action详细信息的ActionMaping对象。
③FilterDispatcher将控制权交给ActionProxy,ActionProxy调用配置管理器(ConfigurationManager)从配置文件(Struts.xml)中读取信息,然后创建ActionInvocation对象。
④ActionInvocation在调用Action之前会依次调用所需配置拦截器(Interceptor N),ActionInvocation会查找结果字符串对应得result , 然后执行这个Result,Result会调用一些模板(JSP)来呈现页面。
⑤拦截器会再次执行(顺序和之前相反)最后响应,被返回在web.xml中配置的那些过滤器和核心控制器(FilterDispatcher)。