软件工程论文

您当前的位置:学术堂 > 计算机论文 > 软件工程论文 >

探讨MVC设计模式在Java Web开发中的具体框架搭建

来源:电脑迷 作者:周伟
发布于:2020-03-27 共3321字

  摘要:随着互联网技术的大量普及和网络技术的快速发展, MVC设计模式分层清晰, 有利于前端和后端开发人员共同开发, 成为了目前B/S架构主流的开发模式。本文从MVC设计模式介绍到MVC设计模式在Java Web开发的实现步骤, 最后介绍具体框架的搭建。使用MVC设计模式下的Java Web框架可以保证项目具有良好安全性、可扩展性和易维护。

  关键词:Java Web; MVC; 设计模式; 软件开发; 软件分层;

  1引言

  随着互联网技术的大量普及和网络技术的快速发展, 越来越多的互联网创业者投入到互联网建设中, Web架构软件方便部署安装、使用方便等特点受到了越来越多的创业者的青睐。在Web架构软件的开发中选择什么样的开发模式就尤为重要了。MVC设计模式分层清晰, 有利于前端和后端开发人员共同开发, 可以提高开发效率和维护成本, 成为了目前B/S架构主流的开发模式。

软件

  本文通过介绍MVC设计模式优点和相关的结构, 让大家对MVC设计模式有较深刻的认识, 然后使用Java语言来实现MVC设计模式, 还通过实际的JSP+Servlet+Java Bean的代码分层的思想来介绍如何进行开发, 最后告诉大家什么类型的项目比较适合使用MVC设计模式。让大家从理论到实践, 更加深刻的了解MVC设计模式的实践。

  2 MVC设计模式介绍

  MVC是一种经典的设计模式, 在软件工程设计开发中非常实用, 最早由smalltalk语言研究中心提出, Java的发展丰富了MVC的思想。MVC由Model (模型) 、View (视图) 、Controller (控制) 三种部件组成。由于MVC的分层开发的思想, 极大的提高开发的效率, 利于日后项目维护, 受到了开发人员的欢迎。

  模型 (Model) 是MVC设计模式的核心, 封装了软件项目的业务流程。模型从视图中获取用户请求或数据, 并将处理结果返回给视图, 业务流程相对其他模块是处于封装, 仅提供接口进行访问, 保证了模块之间的独立, 使软件易于维护。当界面进行修改后, 不会影响后台的业务逻辑和流程, 当业务流程需要变更时, 前台界面无需修改, 也可以正常使用。

  视图 (View) 在MVC设计模式中是将界面与业务流程的处理相分离, 视图负责界面数据和用户请求, 将业务处理流程交给模型层。同时, 从模型层获取数据显示给用户。

  控制器 (Controller) 在MVC设计模式中负责用户请求的接收和转发, 控制器从视图获取用户的请求, 根据相关业务要求传递给相应的模型进行处理, 模型处理完成后, 选择业务相应的视图进行显示。

  使用MVC设计模式的优势在于多个视图能共用一个模型。当需要用多种方式来访问应用程序时, 使用MVC设计模式是一个很好的解决方案。模型与控制器和视图相离, 当业务逻辑需要修改时, 可以快速修改而不影响界面。MVC设计模式的三个部件是相互独立的, 修改其中一个部件不会影响其他两个部件的使用, 可见MVC设计是一种松耦合设计思想。

  3 MVC设计模式在Java Web开发的实现步骤

  Java在1995年发布后, 由于Java的高效性、安全性、稳定性和可移植性受到了开发人员青睐, Java Web开发也变得越来越热门, 我们使用Servlet作为控制器, 由Servlet获取所有客户端的请求, 然后根据请求调用相应的Java Bean (模型) , 最后将数据显示在JSP (视图) 上。实现MVC设计模式的软件需要以下步骤:

  (1) 分析软件项目的需求, 对软件项目进行分离。分析实际软件开发需求功能, 整理出项目业务和流程。设计模型部件要封装项目所需数据和计算等功能, 并提供数据访问和显示的相关操作, 并提供相应的接口。

  (2) 设计和制作项目所需的界面视图。设计每个界面的显示形式, 视图从模型中获取数据, 然后显示出来。我们采用JSP+HTML的形式来进行界面的布局设计, 保证软件的兼容性。

  (3) 设计和实现控制器。控制器需要建立起与模型和视图的联系, 从视图中获取数据和响应操作, 然后对接模型进行处理, 然后再显示出来, 我们采用Servlet作为控制器。

  (4) 对MVC各个模块进行测试。在完成了视图、控制器和模型后, 我们需要单独对每个模块进行测试, 比如视图可以进行界面兼容性的测试, 是否符合主流浏览器的需要, 还需进行用户体检的测试, 看看是否有利于需求的功能的使用。控制器的测试主要是对相关的跳转、获取数据是否准确。模型的测试主要是进行对实际项目的需求和开发是否一致, 以便出现功能性的错误

  (5) 项目的整体测试。在开发完成项目后, 应该对项目进行测试, 每个模块使用了控制器进行跳转, 功能性是否正确, 以往有开发人员分层采用MVC设计模式, 但是实际项目却不用, 造成后期维护非常困难, 所以一定要对项目整体流程进行测试, 看看是否真正使用MVC设计模式。

  4基于MVC设计模式Java Web框架的搭建

  Java Web框架采用JSP+Servlet+Java Bean来搭建, 用户通过request调用Servlet, Servlet根据用户响应的操作和用户的数据去调用相应的Java Bean, Java Bean会连接和操作数据库, 获取到用户所需的数据, Servlet根据Java Bean返回的数据调用对应的JSP视图界面, JSP通过response对象通知用户并显示, 具体模式如下图1:

  图1 JSP+Servlet+Java Bean (MVC设计模式)  

  JSP+Servlet+Java Bean来进行项目框架搭建, 具体分层如下:

  (1) 实体类, 主要实体属性和数据库表的字段一一对应, 采用set和get方式来写和读数据, 采用标准的Java Bean.

  (2) 数据库操作类, 主要是封装数据库连接及相关操作的方法, 以便其他操作数据库的类进行使用。

  (3) 接口, 根据业务流程需求, 进行接口的编写, 对项目进行设计与规划。

  (4) 接口实现类, 根据业务实际需要, 编写实际业务操作的代码。

  (5) 接口代理类, 根据业务需要进行逻辑控制, 编写相关和数据库操作的业务内容。

  (6) Serlvet控制类, 根据业务进行控制类的编写。

  (7) JSP视图:对页面采用HTML方式布局界面, 并根据获取的数据使用JSP技术在页面中显示和收集。

  5项目该如何选择使用MVC设计模式

  MVC设计模式可以能使软件开发工作更系统化、模块化, 增加了项目开发的效率和可重用性。同时MVC设计模式也存在一定的缺陷。项目使用MVC设计模式, 会增加的项目的负责度, 若一个项目难度较小, 完全可以不适用MVC设计模式, 甚至也不需要使用分层思想。

  我们在开发软件项目之前, 什么样的项目符合MVC设计模式呢?比如一个项目需求需要不断增加和完善的, 虽然项目内容不大, 但是后期改动比较大, 那么使用MVC设计模式是非常好的选择, 还有项目需要长期使用, 需要有人进行长期维护的, 那么也是需要使用MVC设计模式的, 因为MVC虽然开发工作量大, 但是后期易于维护的优点就显现出来了。还有项目需求复杂度大, 需要多人分工的, 那么使用MVC设计模式也是非常必要的, 使用MVC设计模式有助于分解项目难度, 提高团队的协作能力。

  MVC设计模式存在的缺陷就是分层多, 造成开发工作量大, MVC设计模式主要是前期工作多, 以便日后维护和升级工作量少, 那什么项目无需使用MVC设计模式呢?比如一个过渡性的产品, 时间开发要求比较紧, 日后也不进行维护的项目, 那么就不要采用MVC设计模式进行开发了。还有就是功能性非常小的, 日后需求不会增加和变更的项目, 那么也不必采用MVC设计模式, 这些项目不采用MVC模式, 还可以提高开发周期和产品的质量。

  6结束语

  本文介绍了MVC设计模式的特点以及优势, 结合Java开发技术, 实现了Java Web在MVC设计模式下框架的搭建, 使用的Java Web中原生JSP技术来实践MVC设计模式。使用MVC设计模式会使得整个软件项目开发具有系统性, 实现了软件开发的多人合作开发, 使得程序更加模块化, 提高了代码复用性, 降低了项目维护和开发成本。所以我们采用MVC设计模式的Java Web技术可以保证软件项目具有良好安全性、可扩展性和易维护。

  参考文献
  [1]赖英旭;刘增辉;李毛毛。MVC模式在B/S系统开发中的应用研究[J].微计算机信息, 2016, (10) .
  [2]田娟;徐钊。基于J2EE的MVC设计模式的分析与思考[J].计算机与现代化, 2010, (10) .
  [3]徐雯;高建华。基于Spring MVC及MyBatis的Web应用框架研究[J].微型电脑应用, 2010, (7) .
  [4]刘亮;霍剑青;郭玉刚;袁泉;王晓蒲。基于MVC的通用型模式的设计与实现[J].中国科学技术大学学报, 2010, (6) .
  [5]王家骐;于海霞。基于MVC设计模式的WEB应用框架研究[J].计算机与信息技术, 2006, (11) .

作者单位:柳州市第一职业技术学校
原文出处:周伟.计算机JavaWeb软件MVC设计模式的研究与实现[J].电脑迷,2016(12):33+57.
相关内容推荐
相关标签:软件设计模式论文
返回:软件工程论文