MVC模式 在Java Web应用程序中的实现

一、MVC简介

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。

MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式。

Model(模型)表示应用程序核心(比如数据库记录列表)。

View(视图)显示数据(数据库记录)。

Controller(控制器)处理输入(写入数据库记录)。

Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存取数据。

View(视图)是应用程序中处理数据显示的部分。通常视图是依据模型数据创建的。

Controller(控制器)是应用程序中处理用户交互的部分。通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。

 

二、Java web应用程序的主要组件

a) Servlet

  1. Servlet运行于Web容器中,如Tomcat,它可以被Web容器动态加载,接收浏览器请求,调用其他组件处理请求,然后把处理结果返回。
  2. 当浏览器访问某个Servlet时,Web容器将会创建一个ServletRequest对象和ServletResponse对象,并且把用户的请求信息封装在ServletRequest对象中。然后把这两个对象作为参数传输给Servlet的特定方法中。在该方法中处理请求,把处理结果封装在ServletResponse对象中,返回给Web容器。最后Web容器把结果返回到浏览器去解析、显示。

 

b) EJB

Enterprise Java Bean(EJB)组件是服务器端的Java组件。该组件基于标准分布式对象技术、CORBA和RMI等技术,用于实现企业级应用的额业务逻辑。

c) JSP

   JSP是一种动态网页技术。它把HTML页面中加入Java脚本, 以及JSP标签构成JSP文件。当浏览器请求某个JSP页面时, Tomcat会把JSP页面翻译为Java文件。然后将它编译为class 文件,接着执行它,把生成的HTML页面返回到客户端显示。

d) JavaBean

JavaBean组件是一种符合特定规范的Java对象。在JavaBean组件中定义一系列的属性,并且每个属性都提供setter和getter方法,这样就可以使用该组件存储一些中间数据。例如ServletRequest的请求信息、从数据库中查询出来的信息等。

e) XML语言

XML(Extensible Markup Language)是一种用来创建自定义标记的标记语言。

 

 

三、Java Web解决方案(开发方法)

a) JSP+Servlet+JavaBean

  1. 特点:JSP作为视图,来表现页面;Servlet作为控制器,控制程序的流程并调用业务进行处理;JavaBean封装了业务逻辑。遵循了MVC设计模式。
  2. 缺点:没有统一的开发框架导致开发周期长。

b) JSP+JavaBean

  1. 特点:该模式将业务逻辑与页面表现进行分离,在一定程度上增加了程序的可调试性和维护性。
  2. 缺点:页面将控制与显示集于一身。
  3. 结论:简单,适合小型项目的快速构建与运行。

c) Struts

  1. 特点:成熟的MVC开发框架。
  2. 构成:
    1. 控制器:

a) ActionServlet 组件:Struts框架的中央控制器。

b) RequestProcessor 组件:每个子模块都具有的请求处理器。

c) Action组件:业务代理,它将调用模型进行一项具体的业务逻辑处理。

  1. 模式:通常在Structs中使用其他模型组建来实现业务逻辑。如:JavaBean技术、EJB技术、Hibernates设计模式。
  2. 视图:主要由JSP页面构成;

a) 还包括HTML文档;

b) 标准标签库(JSTL)和Struts标库;

c) JavaScript脚本和CSS样式;

d) 多媒体文件;

e) 消息资源文件;

f) ActionForm类。

  1. 结论:对于一些大型的项目,Struts框架会提高开发效率,并对后期的维护有很大好处。

 

d) Spring

  1. 特点:拥有IOC和AOP两种先进的技术为基础,完美的简化了企业级开发的复杂度,是一个理想的Web程序框架。
  2. 构成:
    1. 核心模块:实现了IOC模式,包含BeanFactory类负责对JavaBean的配置与管理。
    2. 上下文模块:继承BeanFactory类,添加了事件处理、国际化、资源装载、透明装载以及数据校验等功能,提供了框架式的Bean访问方式和很多企业级功能。 如:JNDI访问、支持EJB、远程调用、继承模板框架、E-mail和定时任务调度等。
    3. AOP模块:提供了用标准Java语言编写的AOP框架,使应用程序抛开EJB的复杂性,但拥有传统EJB的关键功能。
    4. DAO模块:提供了JDBC的抽象层,并且提供了对声明式事物和编程式事务的支持。
    5. Web模块:建立在上下文模块基础之上,提供了Servlet监听器的Context和Web应用的上下文。对现有的Web框架如:JSF、Tapestry、Struts等提供了集成。
    6. O/R映射模块:提供了对现有ORM框架的支持如Hibernate
    7. Spring MVC框架:建立在核心模块之上,嫩够适应于多种多视图、模板技术、国际化和验证服务,实现控制逻辑和业务逻辑清晰的分离。

e) Struts+Hibernate

  1. 特点:利用Struts的MVC设计模式,与Hibernate持久化对象组成的开发方案。
  2. 结论:对于一些大型的项目,这种方式会提高开发效率,并对后期的维护有很大好处。

 

f) Struts+Spring+Hibernate

  1. 特点:
    1. Struts负责表示层,
    2. Spring负责逻辑层的业务,
    3. Hibernate持久层中数据库的操作,组成的开发方案。
  2. 结论:对于一些大型的项目,这种方式会提高开发效率,并对后期的维护有很大好处。

 

四、常用的Java Web的MVC框架

a) Struts

Struts是一个基于Sun J2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的。由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速,在过去的一年中颇受关注。Struts把Servlet、JSP、自定义标签和信息资源(message resources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大的节省了时间。

b) SpringMVC

Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的SpringMVC框架或集成其他MVC开发框架,如Struts1,Struts2等。

 

c) Model 2

Model 2是基于MVC(Model-View-Controller,模型-视图-控制)架构模式的,通常将小服务(Servlet)或过滤器(Filter)作为控制器,其作用是接受用户请求并获得模型数据然后跳转到视图;将JSP页面作为视图,用来显示用户操作的结果;模型当然是POJO(Plain Old Java Object),它是区别于EJB(Enterprise JavaBean)的普通Java对象,不实现任何其他框架的接口也不扮演其他的角色,而是负责承载数据,可以作为VO(Value Object)或DTO(Data Transfer Object)来使用。

转载于:https://www.cnblogs.com/hehejeson/articles/6754638.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值