`

MVC框架到实现原理

阅读更多
MVC框架到实现原理
一.为什么会出现像Structs这样的MVC框架呢?
1. MVC模式是J2EE中Model 2模型的应用,有Model 2就肯定存在Model 1模型,我们二期基于JSP的开发就是典型的Model 1模型(JSP+JavaBean的开发模式),Model 1模型最大的好处就是执行效率快,可是JSP的职责太重(JSP 负责数据的显示,负责请求数据的获取,还要负责调用模型对象来实现业务),Model1模型适用于小型项目
2. Model 2模型是对Model 1模型的改进,它将JSP职责进行了更近一步的分,从中抽取出了一层(控制器---- Servlet/Filter),也就是说JSP将获取参数,调用Model对象,和页面跳转交给了Servlet去做,它只负责数据的展示和搜集(View层)
3. 我们经常提到分层,其实分层就是划分职责,我们应该尽量将职责单一化,这样利于维护和拓展
4. 如果采用Model 2来开发项目同样也存在着弊端,
a) 对于一个项目首先我们要创建很多Servlet,这样在多人开发时命名规范就成了问题,多个程序员的代码不统一,不利于后期维护和拓展
b) 我们也知道Servlet对象是有生命周期到,在项目使用过程中就要创建很多Servlet对象,而这些对象都驻留在Tomcat缓存中,因而严重影响了Web服务器的性能
c) Servlet在控制请求跳转时是通过硬编码的方式写死的,这样在控制层和View层跳转就不够灵活了,不利于以后的变更。
d) 在多人开发中对于获取请求参数都没有一个统一的标准
5. 基于以上这些弊端,我们就急需一种框架来统一MVC的编程,如果大家都采用同一个MVC框架进行开发,这样就可以通过框架的规范来限定大家的行为,这样利于对人的共同开发和后期的维护
二.Structs框架的实现原理
1.为了解决在项目中要创建多个Servlet对象的问题,Structs通过一个Servlet来截取所有的请求,并通过请求路劲来调用具体的Action,让Action来完成业务调用
2.MVC模式框架的分类
a.面向请求驱动的MVC框架----Structs1.x , Structs2.x ,WebWork
类图如下:

时序图如下:
  

  b.面向事件驱动的MVC框架----JSF
3.Structs的MVC实现

1. ActionServlet类控制导航
2. ActionServlet根据URI来决定哪个Action类被用于处理请求,Action可以校验输入,并访问业务层以便从数据库检索信息
3. Action需要知道页面提交了那些内容,所以由ActionServlet根据请求URI来决定将请求参数绑定到那个ActionForm中,并传入Action
4. Action在完成业务逻辑后,返回一个ActionForward对象,ActionServlet根据ActionForward对象中的路径来调用页面完成响应
5. Struts将页面跳转信息绑定在一个ActionMapping对象中,一个ActionMapping对应一个请求URI,当请求路径到达时,ActionServlet就会查询ActionMapping对象,ActionMapping对象将告诉ActionServlet那个Action类会被调用,那个ActionForm类被用于传递页面数据以及那些ActionForward将被用于转向
6. 有关Action,ActionForm,ActionForward等信息,Struts通过一个配置文件struts-config.xml 文件来定义
7. ActionMapping对应structs的配置信息,一个action标签对应一个ActionMapping对象
分享到:
评论

相关推荐

    MVC框架的实现原理,

    在本篇中,我们将重点探讨MVC框架的实现原理,并结合SSH(Struts、Spring、Hibernate)框架进行讲解。 在MVC模式中,`Model`代表模型层,负责处理业务逻辑和数据操作。`View`是视图层,主要用于展示数据,而`...

    Spring-MVC框架简单实现

    **Spring MVC 框架简单实现** Spring MVC 是 Spring 框架的一部分,它是一个用于构建 Web 应用程序的模型-视图-控制器(MVC)架构。在这个简易版框架中,我们将深入理解 Spring MVC 的核心概念和关键组件。 **1. ...

    mystruts简易MVC框架实现 .

    【标题】"mystruts简易MVC框架实现" 在软件开发中,Model-View-Controller(MVC)架构模式是一种广泛应用于创建用户界面的设计模式,它将应用程序的业务逻辑、数据处理和用户界面分离,提高了代码的可维护性和可...

    C# MVC 经典框架

    为了实现这些功能,开发者需要熟悉C#的基础语法、.NET Framework的类库,以及MVC框架的工作原理。此外,了解HTML、CSS和JavaScript也有助于构建完整的前端交互体验。对于大型项目,理解ORM(Object-Relational ...

    mvc框架实现留言板

    本项目“mvc框架实现留言板”就是这样一个例子,它通过JSP、Servlet和JavaBean的组合,展示了如何构建一个简单的互动式留言板应用。 1. **MVC框架概述** MVC模式是一种设计模式,它将业务逻辑(Model)、用户界面...

    MVC框架工程Myeclipse做的

    **MVC框架的实现** 在给定的资源中,我们可以看到多个示例项目,如"SimpleMVC"和"逻辑操作更专业版MVC版的图书管理系",这些都是基于MVC框架的工程。这些项目可以帮助我们理解如何在实际开发中应用MVC模式。例如,...

    自定义的MVC框架

    通过创建自定义的MVC框架,开发者可以更好地理解MVC模式的工作原理,以及Java Web开发中的Servlet和JSP技术。此外,这个框架还可以作为基础,进一步扩展成更复杂的应用框架,比如Spring MVC,它提供了更多高级特性,...

    Struts 2 自定义MVC 框架

    自定义Struts 2 MVC框架的过程有助于深入理解其工作原理,从而更好地应用和优化项目。 首先,我们来详细探讨Struts 2的核心组件和它们的角色: 1. **模型(Model)**:模型是应用的核心,负责处理业务逻辑和数据。在...

    第二课:通过MVC原理,自定义MVC框架实现1

    三、自定义 MVC 的框架实现 创建自定义MVC框架的核心在于理解和模仿Spring MVC的处理流程。这通常包括以下几个步骤: 1. 创建DispatcherServlet的实现,负责请求分发。 2. 实现HandlerMapping接口,将请求映射到...

    简约版本 MVC 框架模型

    简约版本的MVC框架模型则是为了简化理解这一概念而创建的,适合初学者用来学习MVC的工作原理,并可作为小型项目的基础。 **模型(Model)** 模型层是MVC的核心,负责处理业务逻辑和数据操作。在PHP中,模型通常包含...

    超轻量级MVC框架的设计和实现(源码)

    "超轻量级MVC框架的设计和实现(源码)"是针对这个概念的一个具体实例,它强调了框架的简洁性和无XML配置特性。开发者通常会避免使用XML配置,因为它们可能增加代码的阅读和维护难度。相反,使用Java 5注解可以将配置...

    PHP进阶:模板引擎与MVC框架的应用与实现

    接着探讨了MVC框架的原理与设计,通过设计一个简单的MVC框架,展示了模型、视图和控制器的分工与协同工作。最后,介绍了如何在MVC框架中集成和使用模板引擎,提出了最佳实践与性能优化建议。 适合人群:具有PHP开发...

    .net MVC框架的DEMO

    在本DEMO中,"OrderingMS"很可能是一个关于在线订餐或订单管理系统的示例应用,旨在帮助初学者理解MVC框架的工作原理和实际应用。 1. **MVC模式概述**: MVC模式是软件设计中的一种架构模式,由模型(Model)、...

    spring mvc 框架 原理 机制

    本文将深入探讨Spring MVC框架的工作原理和机制。 首先,我们来看看Spring MVC的核心组件——DispatcherServlet。DispatcherServlet是整个框架的入口点,它扮演着请求分发器的角色。在`web.xml`配置文件中,我们...

    一个mvc框架实例源代码

    通过阅读源码,开发者可以深入理解MVC框架的工作原理,如何在实际项目中运用Struts进行开发,并了解如何组织和设计符合MVC模式的代码结构。 总之,这个MVC框架实例提供了一个学习和实践J2EE和Struts的宝贵资源。...

    自定义MVC框架

    自定义MVC框架的实现需要理解这三个组件的职责和它们之间的通信方式。 2. **控制器(Controller)**:控制器接收HTTP请求,解析请求参数,调用相应的业务逻辑,并将结果传递给视图进行渲染。在这个自定义框架中,控制...

    MVC原理(struts框架详解).

    MVC原理(struts框架详解), Struts 质上就是在Model2的基础上实现的一个MVC架构。它只有一个中心控制器,他采用XML定制转向的URL。采用Action来处理逻辑

    自己实现的MVC框架

    通过自己实现MVC框架,开发者可以学习到如何实现这些功能,以及如何优化请求处理流程。 在“自己MVC的实现”这个压缩包中,我们可以期待找到以下组件: 1. **模型层**:包含业务实体类和数据访问接口/类。 2. **视...

    Asp.Net MVC 框架 官方示例

    Asp.Net MVC(Model-View-Controller)框架是微软推出的一种用于构建动态网站、Web应用程序和Web服务的技术。它在Web开发领域具有广泛的应用...这将有助于深入理解Asp.Net MVC框架的工作原理,并能够应用于实际项目中。

Global site tag (gtag.js) - Google Analytics