基于MVC模式的Java Web开发与应用

时间:2022-06-17 05:41:41

基于MVC模式的Java Web开发与应用

[摘要] 随着开源软件的兴起,各种框架也纷纷出现,在实际软件开发中运用这些框架,大大降低了J2EE开发的复杂度和难度,降低了开发成本,本文阐述了基于MVC模型的JAVAWeb应用软件开发模式,并结合一个实例讨论如何设计基于MVC框架的应用,同时也分析了使用框架开发web应用的优势。

[关键词] Model(模型)View(视图)Controller(控制器)MVC

一、MVC模式

将JSP页面中嵌入的流程控制代码和部分的逻辑处理代码提取出来,放到一个单独的角色中,这个角色就是控制器角色了。这样的架构就符合MVC架构模式,MVC即模型――视图――控制器(Model-View-Control)。

MVC架构有助于将应用程序分割成若干逻辑部件,使程序设计变得更加容易。MVC架构提供了一种按功能参各种对象进行分割的方法,其目的是为了将各对象间的耦合程序降至最低。MVC框架原本是为了将传统的输入(input)、处理(processing)和输出(output)任务运用到图形化用户交互模型中而设计的,但是,将这些概念运用到基于Web的企业级多层应用领域也是很适合的。

图1MVC模型、视图、控制器的关系图

在一个MVC架构中,一个应用被分成三个部分,模型(Model)、视图(View)和控制器(Control)。

模型代表应用程序的数据以用于访问控制和修改这些数据的业务规则。当模型发生变化时,它会通知视图,并为视图提供查询模型相关状态的能力。同时,它也为控制器提供访问封闭在模型内部的应用程序功能的能力。

视图用开组织模型的内容。它从模型那里获得数据并指定这些数据如何表现。当模型变化时,视图负责维护数据表现的一致性。视图同时将用户的请求通知控制器。

控制器定义了应用程序的行为。它负责对来自视图的用户请求进行解释,并把这些请求映射成相应的行为,这些行为由模型负责实现。在独立运行的GUI客户端,用户的请求可能是一些鼠标单击或是菜单选择操作。在一个WEB应用程序中,它们的表现形式可能是一些来自客户端GET或POST的HTTP请求。图1描述了在MVC应用程序中模型、视图、控制器三部分的关系。

在这种开发模式下,控制器的角色由Servlet实现,视图的角色由Jsp页面实现,模型的角色由JavaBean来实现,该模型的架构图如图2所示。

图2JSP开发模型

Servlet充当控制的角色,它接受请求,并且根据请求信息将它们分发给适当的JSP页面来产生响应。Servlet控制器还根据JSP视图的需求生成JavaBean的实例并输出给JSP环境。JSP视图可以通过直接调用JavaBean实例的方法或使用和动作元素来得到JavaBean中的数据。

二、基于MVC框架的论坛功能的实现

论坛是电子商务网站中一种常见的功能,它为上网用户提供了一个自由的讨论区。用户可以根据需要在论坛上发表文章,提出问题并表达自己的观点,俗称发帖子或灌水。与此同时,上网用户也可以在论坛中浏览其他人发表文章,并能对该文章进行回复。一个典型的论坛系统一般应提供如下功能:会员管理、讨论区文章查阅、发表新文章、后台管理。

运用MVC框架实现论坛,首先把应用分解为模型、视图和控制器来实现,这样就将业务逻辑和表现层分开,提高软件可扩展性和良好的逻辑性,改变了传统Web开发设计模式。下面将以论坛中用户登陆为例按照MVC架构来详述实现过程。

1.创建视图组件

在视图中主要包括两个组件:用户登录页面Login.jsp,登录失败页面error.jsp;是用户登录失败后显示的页面。它们都保存在Web应用目录xxx下。

2.创建模型组件

模型组件文件UserInfo.java 是处理业务逻辑的JavaBean, 封装了与论坛用户相关的所有信息,同时也定义了所有与论坛用户信息处理相关的方法。例如检查用户身份的方法以及查找、删除、编辑、存储用户信息等。通过Action类派生的子类LoginAction访问UserInfo.java实现对业务逻辑的处理。注意业务逻辑层对应的类所在的包应该部署在xxx/WEB-INF/classes下。

3.创建控制器组件

控制器组件作为整个MVC架构的控制中心,包括了ActionServlet、Action Bean、ActionForm Bean、以及相关配置文件web.xml及资源包。

(1)声明及定义LoginActionForm.java

该Javabean用于获取用户登录页面提交的表单数据。注意ActionFormBean中属性名称一定要对应用户表示层JSP页面中的表单元素名称及超链接参数名。

(2)声明及定义LoginAction.java

LoginAction负责处理客户端提交请求,其主要功能是依据接收到的不同请求,通过LoginActionForm中得到对应的提交表单数据,调用业务逻辑层中对应的UserInfo.java进行处理。最终将结果传给用户表示层JSP页面,显示在用户面前。

(3)配置文件定义

web.xml主要实现了对ActionServlet进行配置如下。

ActionServlet

< servlet-class>ActionServlet

ActionServlet

/servlet/ActionServlet

三、结束语

从某种意思上讲,MVC实现了Web层的应用框架,是一个具有良好扩展性和不断完善的框架,利用这种应用框架不但能缩短开发时间,还能够实现框架和代码的重用,特别是当应用有着较复杂的逻辑,并且返回的视图也不同时,该种方式是首先。

本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。

上一篇:中小企业融资难的因素及出路探讨 下一篇:期望效用理论与前景理论之比较