struts2简介
struts2是基于MVC设计模式的Java Web框架技术之一,struts2框架按照MVC的设计思想把Java Web应用程序分为控制层,包括核心控制器FilterDispatcher和业务控制器Action,模型层,包括业务逻辑组件和数据库访问组件,视图层,包括HTML、JSP、struts2标签等。
1、struts2的控制器组件
在基于MVC的应用程序开发中,控制器组件的主要功能是从客户端接收数据、调用模型(JavaBean)进行数据处理以及决定返回给客户某个视图。struts2的控制器主要有核心控制器FilterDispatcher和业务控制器Action。
1)FilterDispatcher控制器
基于MVC的Java Web框架需要在Web应用程序中加载一个核心控制器,struts2框架需要加载的是FilterDispatcher。FilterDispatcher是一个过滤器,是struts2的核心控制器,控制着整个Java Web项目中数据的流向和操作。FilterDispatcher需要在web.xml中进行配置。除了用web.xml配置文件配置核心控制器FilterDispatcher外,struts2控制数据的操作时,还需要用到struts2的另一个配置文件struts.xml。
2)struts.xml配置文件
struts2的核心配置文件是struts.xml。用户请求提交给核心控制器FilterDispatcher后,具体由哪个业务控制器Action来完成,是在struts.xml配置文件事先配置好的,根据配置文件struts.xml中的数据,核心控制器FilterDispatcher调用某个具体的业务控制器Action来完成数据的处理,处理完数据后把处理结果通过其他对象返回给核心控制器FilterDispatcher,核心控制器根据struts.xml配置文件中的配置决定下一步操作。
3)Action控制器
Action是struts2的业务控制器,可以不实现任何接口或者不继承任何struts2类。Action类是一个基本的Java类,具有很高的可重用性。Action中不实现任何业务逻辑,只负责组织调度业务逻辑模型组件。Action类完全是一个简单的Java对象,具有良好的代码重用性。Action类无须与Servlet API关联,降低了与Servlet的耦合度,所以应用和测试比较简单。Action类的execute()方法仅返回一个字符串作为处理结果,该处理结果可传到任何视图或者另外一个Action。
2、struts2的模型组件
模型组件是可以实现业务逻辑的模块,在实际的项目开发中,对模型组件的区别和定义是比较模糊的,实际上也超出struts2框架的范围。struts2框架的业务控制器不会对用户请求进行实质的处理,用户请求最终由模型组件负责处理,业务控制器只提供处理场合,是负责调度模型组件的调度器。不同的开发者有不同的方式来编写模型组件,struts2框架的目的是使用Action来调用模型组件。
Action控制器保存来自页面的数据,在Action控制器中有一个execute()方法,可以在该方法中调用业务逻辑组件完成对数据的处理,处理的结果是返回一个字符串,又称为逻辑视图,在struts2.xml配置文件中配置了逻辑视图和实际物理视图的对应关系。业务控制器可以通过创建模型组件的实例的方法实现对业务逻辑的调用,通常,当业务控制器需要获得业务组件的实例时,不会直接获取业务逻辑组件实例,而是通过工厂模式来获取业务组件的实例,或者使用其他Ioc容器来管理业务组件的实例。
————————————————
原文链接:https://blog.csdn.net/weixin_40544356/article/details/81075755