1. Struts2简介
1.1. 什么是Struts2
1.1.1. Struts2的概念
Struts2是轻量级的MVC框架,它主要解决了请求分发的问题,重心在于控制层和表现层。
轻量级,指的是Struts2具有较低的侵入性,就是它对我们业务代码的依赖程度很低,简单来说,在使用Struts2框架时,我们的业务代码中基本上不需要import它的包。
Struts2实现了MVC,满足了MVC设计思想。在我们使用Struts2做开发的时候,就相当于使用了MVC,这是Struts2自动帮助我们实现的,是默认的、隐含的,我们不需要再写特别的代码来实现MVC了。
作为一个框架,Struts2提供了一系列的API,我们可以使用它们来简化代码的编写,从而提升开发效率。这些API复用程度很高,对业务代码的依赖性也很小,甚至很多是Struts2自动调用的,因此在很大程度上,我们的开发变得可以复用。
Struts2解决请求分发的问题,我们会在后面为什么使用Struts2中讲解。
重心在控制层和表现层,是纵观整个Struts2理论课程来看的,从中我们会体会到这一点,随着大家对Struts2的逐步了解,届时我们再回顾这一点。
1.1.2. 什么是MVC
MVC是代码的分层思想,是软件设计领域经典的设计模式。它根据代码功能的不同,将一个软件的代码分为3部分,即模型、视图、控制器,这3部分代码的含义和功能如下。
1、M-Model 模型
模型(Model)的职责是负责业务逻辑。包含两层:业务数据和业务处理逻辑。比如实体类、DAO、Service都属于模型层。
2、V-View 视图
视图(View)的职责是负责显示界面和用户交互(收集用户信息)。属于视图的组件是不包含业务逻辑和控制逻辑的JSP。
3、C-Controller 控制器
控制器是模型层M和视图层V之间的桥梁,用于控制流程。比如:在Servlet项目中的单一控制器ActionServlet。
使用MVC,可以将代码按功能划分,从而为代码解耦,便于团队开发以及代码维护。
1.2. 为什么用Struts2
1.2.1. Struts2与Servlet对比
在学习框架之前,我们使用了Servlet开发WEB项目,并使用Servlet充当控制器来实现MVC。那么对比着Servlet这种方式,我们来分析一下Struts2具有的优缺点。
1、优点
∙ 业务代码解耦,适合团队开发。Struts2将请求分发给不同的处理类,从而降低了业务代码耦合度。
∙ 提升开发效率。Struts2提供了一系列API,可以大大提升项目的开发效率。如:使用自动给请求参数转型。
2、缺点
∙ 执行效率偏低。Struts2需要使用反射、解析XML等技术手段,会降低执行效率。
∙ 结构复杂,有学习成本。我们需要花一定成本学习Struts2的API及使用步骤。
凡事有利必有弊,框架也没有完美的,那么结合上述Struts2与Servlet对比的结论,我们在开发项目时会做出如下选择:如果对程序执 行的效率要求的比较高的话,我们优先选择Servlet,反之如果对程序执行的效率要求一般的话,我们可以使用Struts2来提升开发效率并降低维护成 本。
1.2.2. Struts2自身的优势
框架是一个项目的基础,因此必须在各方面都表现优良。我们在选择框架时,可以按照4个指标来衡量其优劣,即健壮性、易用性、扩展性、侵入性,这4个指标需要保持均衡,任何一个指标不合格,都可能对项目产生灾难性的影响。
jsp创建Struts2作为时下最流行的框架,在这4个指标上,具有如下的表现:
1、健壮性(4★)
Struts2是一个成熟稳定的框架,目前最稳定的版本是2.1.8。
2、易用性(4★)
Struts2易学好用,几天即可上手。
3、扩展性(5★)
Struts2运用AOP的思想,使用来扩展业务控制器Action。
4、侵入性(4★)
Struts2对业务代码依赖性很低,基本不需要import它的包。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论