从过去岁月来看,Struts1是所有MVC框架中不容辩驳的胜利者,不管是市场占有率,还是所扔有的开发人群,Strunts1 都拥有其他MVC框架不可比拟的优势。Struts1的成功得益于它丰富的文档、活跃的开发群体。当然,Struts1是世界上第一个发布的MVC框架:Struts1 在 2001 年 6 月 发布,这一点可能是使它得到如此广泛拥戴的主要原因。
Struts1框架以 ActionServlet 作为核心控制器,整个应用由客户端请求驱动。当客户端向WEB应用发送请求时,请求将被Struts1 的核心控制器ActionServlet拦截,ActionServlet根据请求决定是否需要调用业务逻辑控制器处理用户请求(实际上,业务逻辑控制器还是控制器,它只是负责调用模型来处理用户请求),当用户请求处理完成后,其处理结果通过JSP呈现给用户
Struts1的程序运行流程如图:
下面就Struts1程序流程具体分析MVC中的三个角色
1、Model部分
Struts1的Model部分主要由底层的业务逻辑组件充当,这些业务逻辑组件封装了底层数据库访问、业务逻辑方法实现。实际上,对于一个成熟的企业应用而言,Model部分也不是一个简单的javaBean所能完成的,它可能是一个或多个EJB组件,可能是一个WebService服务。总之,Model部分封装了整个应用的所有业务逻辑,但整个部分并不是由Struts1提供的,Struts1也没有为实现Model组件提供任何支持。
2、View部分、
Struts1的view部分采用了jsp实现。Struts1提供了丰富的标签库,通过这些标签库可以最大限度地减少脚本的使用。这自定义的标签库可以输出控制器的处理结果。
虽然struts1提供了与Ties框架的整合,但Struts1所支持的表现层技术非常单一:既不支持FreeMarker、Velocity等模棋逢对手技术,也不支持JasperReports等报表技术