初识Struts2框架

来源:互联网 发布:nginx实现负载均衡 编辑:程序博客网 时间:2024/06/06 16:26

Struts2是整合了当前动态网站开发中的Servlet、JSP、JavaBean、JDBC、XML等相关技术的一种主流Web开发框架,是一种基于经典MVC的框架。它把Java Web应用程序分为(1)控制器层,包括核心控制器FilterDispatcher和业务控制器Action;(2)模型层,包括业务逻辑组件和数据库访问组件;(3)视图层,包括HTML、JSP、Struts2的标签等。

下面分别介绍Struts2的核心组件:

一、控制器组件

1、FilterDispatcher控制器

基于MVC的Java Web框架需要在Web应用程序中加载一个核心控制器,Struts2框架需要加载的是FilterDispatcher。FilterDispatcher是一个过滤器,是Struts2的核心控制器,控制着整个Java web项目中数据流的流向和操作。如果用户请求以action结尾,该请求将被转入Struts2框架处理。然后根据*.action的前面部分决定调用哪个业务控制组件,例如,对于login.action请求,Struts2调用名为login的Action来处理。FilterDispatcher需要在web.xml中进行配置。此外,Struts2控制数据时,还需要用到另外一个配置文件struts.xml。

2、struts.xml配置文件

Struts2的核心配置文件是struts.xml。用户请求提交给核心控制器FilterDispatcher后,具体由哪个业务控制器Action来完成,是在struts.xml配置文件中事先配置好的,根据配置文件struts.xml中的数据,核心控制器FilterDispatcher调用某个具体的业务控制器Action来完成数据的处理,处理完数据后把处理结果通过其他对象返回给核心控制器FilterDispatcher,核心控制器根据struts.xml配置文件中的配置,决定下一步操作。

3、Action控制器

开发基于Struts2的Java Web应用项目时,Action是数据处理的核心,需要编写大量的Action类,并在struts.xml文件中配置Action。Action类中包含了对用户请求的处理逻辑,因此也把Action称为Action业务控制器。Action就是一个普通的Java类,该类不要求继承任何Struts2的父类,后者实现任何Struts2的接口,但是为了简化项目开发可以继承ActionSupport类。Action中不实现任何业务逻辑,只负责组织调度业务模型组件。

Struts2的Action类具有如下优势。

(a)Action类完全是一个简单的Java对象,实际上就是一个普通的JavaBean,所以Action具有良好的代码重用性。

(b)Action类无须与Servlet API关联,降低了与Servlet的耦合度,所以应用和测试比较简单。

(c)Action类的excute()方法仅返回一个字符串作为处理结果,该处理结果可传到任何一个视图或另外一个Action。

二、Struts2的模型组件

模型组件是可以实现业务逻辑的模块,如JavaBean、POJO或者EBJ。实际的项目开发中,对模型组件的区别和定义比较模糊。Struts2框架的业务控制器不会对用户请求进行实质的处理,用户请求最终由模型组件负责处理,业务控制器只是提供处理场合,是负责调度模型组件的调度器。当业务控制器需要获得业务逻辑组件实例时,通常并不会直接获取业务逻辑组件实例,而是通过工厂模式来获取业务逻辑组件的实例,或者用其他IoC容器(如Spring)来管理业务逻辑组件的实现。

三、Struts2的视图组件

Struts2视图组件除了有HTML、JSP、Struts2标签之外,还可以采用模板技术作为视图技术,如FreeMarker、Velocity等视图技术。


0 0
原创粉丝点击