MVC
MVC(Modle-View-Controller,模型-视图-控制器)模式是Xerox PARC在20世纪80年代为编程语言Smalltalk-80所设计的一种软件设计模式,至今已被广泛使用,并被推荐为Sun公司J2EE平台的设计模式,其为开发交互式应用系统提供了一个优秀的设计模式,受到越来越多开发者的欢迎。
MVC模式主要由3个部分组成:模型、视图和控制器
模型表示业务逻辑和业务规则等,在MVC的三个部件中拥有最多的处理任务。它可以用JavaBean和EJB等组件技术来处理数据库的访问。模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。
视图是屏幕上的显示。模型进行操作之后,其结果就是通过视图来显示的。在视图中其实没有真正的处理发生,只是作为一种输出数据并允许用户操作的方式。
控制器用于管理用户与视图发生的交互。一旦用户想对模型进行处理时,它不能直接去执行模型,而是通过控制器来间接地实现。控制器能从视图中取值,然后将相应的值传给模型进行处理。控制器接受用户的输入并调用模型和视图去完成用户的需求。
由上述可知,MVC模式的处理过程是:首先由控制器接收用户的请求,并决定应该调用哪个模型来进行处理,然后模型用业务逻辑来处理用户的请求并返回数据,最后控制器用相应的视图返回数据,并通过表达层呈现给用户。
MVC本身就是一个非常复杂的系统,所以采用MVC实现Web应用时,最好选一个现成的MVC框架,在此之下进行开发,从而取得事半功倍的效果。现在有很多可供使用的MVC框架,由于Struts有完整的文档并且相对来讲比较简单,所以用它开发MVC系统还是比较方便地。
Struts框架
Struts是Apache组织的一个开放源码项目。Struts是一个比较好的MVC框架,提供了对开发MVC系统的底层支持,它采用的主要技术是Servlet,JSP和Custom tag library。
在Struts框架中Controller功能由ActionServlet和ActionMapping对象构成,核心是一个Servlet类型的对象ActionServlet,它用来接受客户端的请求。ActionServlet包括一组基于配置的ActionMapping对象,每个ActionMapping对象实现了一个请求到一个具体的Model部分中Action处理器对象之间的映射。
Model部分由Action和ActionForm对象构成。所有的Action处理器对象都是开发者从Struts的Action类派生的子类。Action处理器对象封装了具体的处理逻辑,调用业务逻辑模块,并且把响应提交到合适的View组件以产生响应。Struts提供的ActionForm组件对象可以通过定义属性描述客户端表单数据。开发者可以从它派生子类对象,利用它和Struts提供的自定义标记库结合可以实现对客户端的表单数据的良好封装和支持,Action处理器对象可以直接对它进行读写,而不再需要和request、response对象进行数据交互。通过ActionForm组件对象实现了对View和Model之间交互的支持。
View部分是通过JSP技术实现的。Struts提供了自定义的标记库,通过这些自定义标记可以非常好地和系统的Model部分交互,通过使用这些自定义标记创建的JSP表单,可以实现和Model部分中的ActionForm的映射,完成对用户数据的封装。
Struts的处理流程:
l 控制器进行初始化工作,读取配置文件,为不同的Struts模块初始化相应的ModulConfig对象。
2 控制器接收Http请求,并从ActionConfig中找出对应于该请求的Action子类,如果没有对应的Action,控制器直接将请求转发给JSP或者静态页面,否则控制器将请求分发至具体的Action类进行处理。
3 在控制器调用具体的Action的Execute方法之前,ActionForm对象将利用Http请求中的参数来填充自已。还可以在 ActionForm类中调用Validate方法来检查请求参数的合法性,并且可以返回一个包含所有错误信息的ActionErrors对象。
4 执行具体的的Execute的方法,它负责执行相应的业务逻辑。执行完后,返回一个ActionForward对象,控制器通过该 ActionForward对象来进行转发工作。也可以把Action要处理的业务逻辑封装在JavaBean中,如果系统中还有EJB,那么通过 JavaBean调用EJB以完成业务处理;如果没有EJB,那么就直接在JavaBean中连接数据库,进行数据库相关的操作。
分享到:
相关推荐
在Struts MVC架构中,这一层可以通过Java Persistence API (JPA)、Hibernate或iBatis等工具实现。当模型需要添加、删除或更新图书时,会调用这些工具与数据库进行交互。 **7. 事务管理** 由于涉及到数据库操作,...
本项目为Java语言编写的Struts1 MVC架构模拟设计源码,总文件量为51个,其中包括15个Java类文件、15个Java源文件、6个JSP页面文件、3个XML配置文件、2个属性文件以及1个Markdown文件。该源码旨在模拟Struts1的MVC...
### Struts实现MVC机制的Web应用 #### 引言 随着互联网技术的快速发展和Web应用的日益复杂化,为了更高效地管理和构建大规模的Web应用程序,开发领域中出现了多种软件开发框架。其中,Struts作为一种基于MVC...
### Struts:MVC的一种开源实现 #### 一、引言 随着互联网技术的发展,越来越多的应用程序被开发出来,为了确保这些应用具有良好的用户体验、高效的功能性和可维护性,开发者们逐渐采用了一些成熟的设计模式来指导...
JSP(JavaServer Pages)、Struts和JSTL(JavaServer Pages Standard Tag Library)是实现MVC架构的常见技术栈,它们共同为开发者提供了一套强大的工具来构建高效的企业级应用。 **JSP(JavaServer Pages)** 是一...
Struts、MVC和iBatis是Java Web开发中三个重要的技术框架,它们共同构建了一个高效、可维护的Web应用程序架构。在这个“Struts + MVC + iBatis”项目中,我们可以深入理解这三个组件是如何协同工作的。 Struts是...
在这个"Struts1 MVC实例"中,我们将深入探讨如何利用Struts1实现一个基础的CRUD(Create, Read, Update, Delete)操作。 MVC模式是软件工程中的一个设计模式,它将应用程序分为三个主要部分:模型(Model)、视图...
Struts 2是一款强大的Java Web开发框架,基于Model-View-Controller(MVC)设计模式,旨在简化企业级应用的开发。它通过提供一个统一的架构来管理控制器、视图和模型,使得开发者能够更专注于业务逻辑,而不是底层...
这个框架是基于Model-View-Controller(MVC)架构模式,它帮助开发者将业务逻辑、数据表示和用户界面分离,从而提高开发效率和代码的可维护性。 在Struts框架中,Model代表应用程序的数据和业务逻辑,View负责展示...
"运用JSP+Struts+JSTL技术的MVC架构项目实例源码.rar"是一个基于MVC架构的Web应用示例,它使用了Java Server Pages(JSP)、Struts框架和JavaServer Pages Standard Tag Library(JSTL)这三种关键技术。 首先,JSP...
文章提到了使用Struts框架来更有效地实现MVC架构。Struts通过提供一套预定义的组件和API,简化了MVC的实现。例如,在文章中,作者下载并安装了Struts框架,然后通过复制并修改struts-blank.war文件创建了一个新的Web...
这个压缩包“JSP源码——Struts+Hibernate实现MVC_strutsmvc.zip”显然包含了使用这两种技术构建的MVC应用的源代码。下面将详细阐述Struts和Hibernate的核心概念以及它们如何协同工作。 **Struts框架**: 1. **MVC...
这本书深入浅出地介绍了Struts的核心概念、架构以及实践应用,帮助开发者理解和掌握这一强大的MVC框架。 Struts是一个开源的Java Web框架,它遵循Model-View-Controller(模型-视图-控制器)模式,旨在简化Java ...
MVC原理(struts框架详解), Struts 质上就是在Model2的基础上实现的一个MVC架构。它只有一个中心控制器,他采用XML定制转向的URL。采用Action来处理逻辑
Struts本质上是在Model 2的基础上进一步完善了MVC架构,它采用了单一的中心控制器,通过XML定制URL映射,使用Action来处理业务逻辑,从而提供了一种更为统一和简洁的MVC实现方案。 Struts框架自2001年7月正式发布...
"Struts+Hibernate实现MVC_strutsmvc.rar"可能包含一个示例项目,其中包含了上述所有组件。这个项目可能包括了struts-config.xml、hibernate.cfg.xml、Action类、DAO类、实体类、JSP页面以及其他相关配置文件。解压...
**基于MVC架构的购物车**是一个典型的Web应用程序设计,它采用了Model-View-Controller(模型-视图-控制器)模式来组织代码,以实现业务逻辑与用户界面的分离。在这样的架构中,模型负责处理数据和业务逻辑,视图...
### Struts2的MVC架构详解 #### 一、Struts2概述 Struts2是一个基于Java的企业级Web应用框架,它遵循了经典的MVC(Model-View-Controller)设计模式,有效地分离了数据处理(模型)、用户界面(视图)和业务逻辑...
在MVC架构中,Hibernate作为Model层,处理数据的存储和检索。 在这个项目中,`strutsmvc.zip`压缩包可能包含了以下关键组成部分: 1. **源代码**:Java源文件,包括Action类(处理用户请求)、ActionForm(封装...