MVC模式在JavaWeb开发中的应用及实现

2017-08-11 19:07郭平
科技资讯 2017年21期
关键词:设计模式

郭平

摘 要:MVC设计模式是一种可靠有效的开发模式,它实现了业务逻辑和显示界面的分离,在Web应用开发中广泛地使用,该文简要介绍了MVC设计模式,讨论了MVC模式在Java Web应用中的实现,最后给出了一个基于MVC模式的Java Web登录程序的实例。

关键词: MVC 设计模式 Web应用 Java

中图分类号:TP393 文献标识码:A 文章编号:1672-3791(2017)07(c)-0008-03

随着互联网技术的发展,基于B/S模式的Web应用系统已成趋势,用户界面完全通过浏览器实现,主要的事务逻辑在服务器端实现。Java Web应用程序是采用Java技术开发的Web应用程序,在Java Web的开发应用中使用MVC模式能够使得系统更容易扩展、部署和维护,提高开发效率。

1 MVC模式

MVC(Model-View-Controller)是20世纪80年代发明的一种软件设计模式。MVC模式将交互式应用分成模型(Model)、视图(View)和控制器(Controller)3个部分。

Model是从现实世界中抽象出来的对象模型,模型封装了数据和对数据的操作,并进行数据处理计算。View是应用和用户之间的接口,负责将应用呈现给用户。Controller负责视图和模型之间的交互,控制对用户输入的响应、响应方式和流程,它主要负责:(1)把用户的请求分发到相应的模型。(2)将模型的改变及时反映到视图上。将MVC设计模式运用在Web项目开发上,可以很大程度地节约开发时间,将软件开发人员的精力集中在业务逻辑上,不仅减少了项目开发的成本,还大大提高了開发效率,增强了Web应用系统的维护性和延展性。

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

经典MVC模式在桌面程序中发挥了很重要的作用,随着软件规模的不断扩大,MVC设计模式正在应用到各种应用程序的设计中。Sun公司提出了两种web应用程序的开发方式,分别称为模式1和模式2。

模式1以JSP为中心,JSP页面响应用户请求并将处理结果返回客户,数据读取由JavaBean完成。这种模式中JSP页面同时实现业务逻辑、数据显示和流程控制,适合开发小规模的Web应用程序,但不能满足复杂的大型应用程序的开发需求。

模式2基于MVC设计模式,由不同的组件分别实现应用逻辑、处理过程和显示逻辑,这些组件可以进行交互和重用,以Servlet为核心,具体实现如下。

Model:JavaBean对象,用于封装商业规则和存储数据。

View:JSP页面,接收Servlet传递的内容,调用JavaBean并显示其中的数据给用户。

Controller:Servlet对象,负责所有的用户请求参数,判断请求参数是否合法,根据请求的类型调用JavaBean执行操作并将处理结果交由View显示。

模式2充分发挥了JSP和Servlet的技术特点,JSP页面擅长数据显示,适合做显示层,避免在JSP中大量使用Java代码来处理数据;Servlet擅长数据处理,应避免在其中有大量的HTML标记输出。模式2分离了显示层和业务层,有利于软件的扩展和维护。从软件工程化的角度来讲,有利于开发团队各司其职,有利于软件开发的工程化管理。

模式1适合小型的程序开发,开发速度快,如果程序复杂,考虑到代码的维护工作,一般采用模式2。

3 Web实例

以一个Web用户登录程序为例说明MVC设计模式在实际开发中的主要作用。用户登录功能是Web应用系统需要实现的基本功能之一,设计一个简单的用户登录Web应用,该程序中,用户输入的登录信息提交给Servlet,Servlet接收后,首先检验输入内容的合法性,若验证失败则将错误信息传递给登录页显示;若数据合法则调用DAO层完成数据库的验证,根据验证的结果跳转到登录成功或登录失败的页面。

(1)MVC登录程序流程,如图1所示。

(2)MVC登录程序清单。

使用Mysql数据库,数据库名称为mvcsql,表名称为:user,其中含有三个属性,分别为:(userid,name,password)(见表1)。

(3)部分代码。

4 结语

该文以MVC模式结合Web实例,完整地分析了开发Web应用程序的解决方案,MVC模式是解决开发Web应用程序的一种非常有效的模式,它为Web应用开发提供了统一的、标准的开发模式,将web系统中的数据对象、业务逻辑、用户界面三者分离,使得系统具有很好的扩展性,缩短了开发周期,便于后期的维护,在今天仍将得到广泛的应用。

参考文献

[1] 任小敏,钟宝荣.MVC模式在Java程序中的应用及实现,信息系统工程,2011(11):50.

[2] 冯玉萍.基于MVC的设计与开发[J].科技风,2010(5):25.

猜你喜欢
设计模式
“1+1”作业设计模式的实践探索
智慧图书馆环境下的融贯式服务设计模式研究
基于生产者/消费者设计模式的连续音频信号采集系统
浅析基于问题的教学设计模式