
Struts架构简介
Struts架构是由java应用中最流行的概念--MVC构成的。MVC模式是由struts遵循的,它代表了模型-视图-控制器,当你想在你的应用中把应用数据、业务逻辑和所有这些呈现给用户的方式分开时,就会用到它。拥有MVC架构的结构的主要优点是,应用程序变得可重复使用和富有表现力。在问题发生时,如果要做任何形式的改变,我们不需要从头开始编写代码解决方案。我们可以简单地学习模式,并根据需要修改它。
在这里,我们将看到struts架构所遵循的MVC模式,同时也将看到构成struts架构的其他各种组件。
模型视图控制器
在我们看到struts的组件和架构图之前,让我们先看看struts架构的概念基础,即MVC模式。
- 模型。 模型包括代码的业务逻辑,其中与数据有关的操作,如访问数据、验证数据以及将数据保存在数据存储区或数据库中的方式,都属于模型部分的职责。在数据被发送到数据库保存之前,它被视图验证,如果数据的结构是正确的,那么只有它被进一步发送到数据库插入记录或做任何其他类型的操作。
- 视图。 这一部分负责所有用户能够查看的东西,同时它将从用户那里获得所有需要的输入,生成应该传递给控制器处理的请求,同时接受控制器发送的响应,这些响应可以进一步在屏幕上显示给用户。当使用精灵时,我们可以使用自定义标签库、HTML、资源文件和HTML,当使用MVC结构的视图组件时。
- 控制器。 这个组件在其他两个组件,即视图和模型之间起着中间作用。它负责管理和处理所有从视图端(即用户)那里收到的请求。一旦请求到达,控制器就会执行一定的业务逻辑代码,处理模型结构,并在执行后以模型的形式向视图返回适当的数据。控制器中包含的部分是struts-config.xml、ActionForm和ActionServlet。
Struts的架构
下面给出的图表将帮助我们展示struts的架构。现在让我们来看看结构的不同组成部分以及流程是如何运作的。

我们可以清楚地观察到strut架构的三个大的组成部分:Model、View和controller,它们构成了struts的高层架构。当他们进一步挖掘细节时,我们会得到一个更清晰的观点。拦截器和调度servlet过滤器一起试图实现struts中的控制器。模型组件是通过使用动作来实现的。第三个组件,即视图,是通过结合结果和结果的类型产生的。视图和控制器以及视图和模型之间的整合是通过使用OGNL和价值堆栈来实现的,它起到了连接和共同的作用。
除了上图中提到的组件外,struts架构还包括很多与配置有关的细节,包括对结果、拦截器、动作、Web应用和其他许多组件细节的配置。
通过研究结构的工作流程,可以理解用户所做的请求的生命周期,这可以从上面的架构图中得出:
- 所需资源由视图获取,在客户端-服务器架构中,用户(客户端)进一步向服务器发出请求,其中包含所需资源的规格。
- 在过滤器调度器研究了请求并决定要采取的行动后,会采取适当的行动。
- 与配置的拦截器有关的功能,如文件上传的验证,会被执行。
- 在这之后决定和选择的行动将根据客户请求中要求的操作类型来执行。
- 如果需要进行任何形式的后处理,那么将再次执行配置的拦截器的应用。
- 最后一步包括由视图创建结果并将其作为响应返回给用户(客户端)。
MVC Struts架构的内容
Struts所遵循的MVC模式通常在其每个组件中都使用了以下技术。
- 模型。 实现业务逻辑的形式,我们主要使用Java Beans。
- 视图。 作为一个表现层,我们可以使用Angular JS的Java服务器页面或任何客户端技术来处理用户体验和用户界面。
- 控制器。 大多数时候,servlet被用作控制器,其中包括不同的行动类,可以控制安全、处理会话和与行动相关的主要逻辑。
所有这三个组件一起工作,组成并及时执行请求-响应流程,准确无误地传递给用户,这就为用户提供了良好的体验。模型视图控制器最突出的特点是,由于这种独立的代码逻辑分布,它变得非常容易解码,管理和添加任何附加功能到你的应用程序。
总结
struts架构是由不同的组件组成的,大体上我们可以把它们分为三种类型:模型、视图和控制器。struts架构所遵循的MVC模式在开发者中非常流行,因为它带来了巨大的使用优势。