MVC基本概念与Struts2概述

本文详细介绍了MVC架构模式,包括模型层、视图层和控制层的功能,强调了MVC的低耦合性和可维护性。接着,文章概述了Struts2框架,指出它是Struts1的进化版,结合了WebWork技术,具有更强大功能。Struts2的工作流程被详细解析,包括请求处理和Action调用。最后,文章提供了Struts2开发实例,涵盖了开发准备、工程创建和运行结果,指导读者实践Struts2开发。
摘要由CSDN通过智能技术生成

更多内容可以访问我的个人博客


MVC基本概念

MVC将一个应用的输入、处理和输出流程按照Model(模型)、View(视图)和Controller(控制器)三部分进行分离,这样一个应用就可以划分成模型层、视图层和控制层3个层。这三层之间以最少的耦合来协同工作,从而提高了应用系统的可扩展性和可维护性。对于程序员来说,可以更加高效和灵活的完成代码编写。

1.模型层
模型层代表的是企业数据和其对应的业务逻辑,它控制着对数据的处理和更新。通常,模型和现实世界对数据的处理非常相似,这就要求程序开发人员对模型的设计与现实世界应基本相近。模型层接受视图层(通过控制层传送到)的请求数据,并返回最终的处理结果,以更新视图层。
2.视图层
视图层实际上是模型层中的各个模型的具体表现形式。它通过模型得到企业数据,然后再根据需要来显示它们。虽然视图层对数据不做处理,而是将数据直接传送给控制层,但它必须保持着与模型层的数据模型的一致性,即当模型层的数据发生变化时,视图层必须随之变化。
3.控制层
控制层在MVC结构中连接模型层和视图层,起到了纽带的作用。它将视图层的交互信息进行过滤等处理后,再传送到模型层相应的业务逻辑处理程序进行处理。

在这里插入图片描述

MVC特点:

  • 低耦合性。架构分三层,降低了层与层之间的耦合,提高了程序的可扩展性。

  • 一个模型可对应多个视图。可提高代码的可维护性,一旦模型发生变化,方便维护。

  • 模型返回的数据与显示逻辑分离。各层只需负责自己的任务,不用去管其他层的任务。

  • 有利于工程化管理。代码可复用,降低了软件开发周期。


Struts2概述

  • 到目前为止,Struts框架拥有两个主要的版本,分别是Struts 1.x和Struts 2.x版本,它们都是遵循MVC思想的开源框架。

  • Struts 1是真正意义上的MVC模式,发布后受到了广大程序开发人员的认可。性能高效、松耦合、低侵入永远是开发人员追求的理想状态,而Struts1在这些方面又恰恰存在着不足之处。在这种情况下,全新的Struts2框架应运而生,它弥补了Struts 1框架中存在的缺陷和不足,并且还提供了更加灵活与强大的功能。

  • 要注意的是,Struts 2框架并不是Struts 1的升级版,而是一个全新的框架,在体系结构上与Struts 1也存在着较大的差距。它将Struts技术与WebWork技术完美的结合起来,拥有非常广泛的使用前景。

Struts2工作流程

在这里插入图片描述

① 用户发出一个HttpServletRequest请求

② 这个请求经过一系列的过滤器Filter来传送。

③ 调用FilterDispatcher。FilterDispatcher是控制器的核心,它通过询问ActionMapper来确定该请求是否需要调用某个Action。如果需要调用某个Action,则FilterDispatcher就把请求转交给ActionProxy处理。

④ ActionProxy通过配置管理器Configuration Manager询问框架的配置文件struts.xml,从而找到需要调用的Action类。

⑤ ActionProxy创建一个ActionInvocation的实例,该实例使用命名模式调用。在Action执行的前后,ActionInvocation实例根据配置文件加载与Action相关的所有拦截器Interceptor

⑥ 一旦Action执行完毕,ActionInvocation实例根据struts.xml文件中的配置找到相对应的返回结果,通常是一个JSP或者FreeMarker的模板。

⑦ 最后,HttpServletResponse响应通过web.xml文件中配置的过滤器返回。

  • 从Struts 2的角度理解MVC

在Struts 2中,模型层对应业务逻辑组件,它通常用于实现业务逻辑及与底层数据库的交互等。视图层对应视图组件,通常是指JSP页面,但也适用于其他视图显示技术,如Velocity或者Excel文档。控制层对应系统核心控制器和业务逻辑控制器。系统核心控制器为Struts 2框架提供的FilterDispatcher,它是一个起过滤作用的类,能根据请求自动调用相应的Action。而业务逻辑控制器是指开发人员自行定义的一系列Action,在Action中负责调用相应的业务逻辑组件来完成处理。

FilterDispatcher——控制层

Action——模型层

Result——视图层

  • Struts2的开发优势
  1. 通过简单、集中的配置来调度动作类,使得配置和修改都非常容易

  2. 通过简单统一的表达式语言来访问所有可供访问的数据

  3. 提供标准的、强大的验证框架和国际化框架,而且与Strusts的其他特性紧密结合。

  4. 强大的标签,可以有效地减少页面代码

  5. 良好的Ajax支持。

  6. 增加插件简单。

  7. 明确的错误报告。

  8. 智能的默认设置。很多框架对象都有一个默认的值,无需再设置。

Struts2开发实例


1. 开发准备

① Eclipse中部署Tomcat:Window|Preferences ——>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值