Web应用的MVC设计模式

  MVC是一种设计模式,至今被广泛的使用(不仅仅是在web)。MVC模式强制性地把应用程序的数据展示、数据处理和流程控制分开。MVC把应用分成三个核心模块:模型(Model)、视图(View)和控制器(Controller),它们分别担当不同的任务。 

1、视图

  视图是用户看到并与之交互的界面。视图向用户显示相关的数据,并能接收用用户的输入数据,但是并不进行任何的业务处理。视图可以向模型查询业务状态,但不能改变模型。视图还能接受模型发出的数据更新事件,从而对用户界面进行同步更新。可以是一组jsp文件及HTML文件等。

2、模型

  模型表示应用程序的业务数据和业务逻辑。一个模型能为多个视图提供数据。由于同一个模型可以被多个视图重用,所以提高了模型的可重用性。对于大型应用,业务逻辑通常由JavaBean或EJB组成。

3、控制器

  控制器接受用户的输入并调用模型和视图去完成用户的需求,所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。其功能就是将数据展示与业务逻辑分开,在jsp model2中由servlet担任。

4、MVC处理过程

  首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理;然后模型根据客户请求进行相应的业务逻辑处理,并返回数据;最后控制器调用相应的视图来渲染模型返回的数据,并通过视图呈现给用户。

5、MVC优点

  在最初的jsp应用中,像数据库查询这样的jdbc代码和HTML表示层代码是混在一起的。好的做法是将jdbc代码从表示层分离开来,但这通常不是很容易做到的,它需要精心的设计和不断的尝试,MVC从根本上强制性的将它们分开。尽管MVC程序需要一些额外的工作。但是带来的优点是毋庸置疑的:

  • 首先,多个视图可以共享一个模型。如今,同一个web应用程序会提供多种用户界面(PC,PAD,WAP,IoT等)。在MVC设计模式种,模型响应客户请求并返回响应数据,视图负责渲染并把它呈现给用户,业务逻辑和表示层分离。同一个模型可以被不同的视图重用,大大提高了代码的可重用性。
  • 其次,模型是自包含的,与控制器与视图保持相对独立,所以可以很方便的改变应用程序的业务数据和业务规则。例如要把数据库从Mysql移植到Oracle,只需要改变模型即可。一旦正确的实现了模型,无论数据来自何处,视图都会正确的显示它们。由于MVC的3个模块相互独立,改变其中一个不会影响其它,所以这种设计能够构造良好的松耦合的构件。大大提高了应用的维护性。
  • 此外,控制器提高了应用程序的灵活性和可配置性。控制器可以用来联接不同的模型和视图去完成用户的需求,还可以为应用程序提供强有力的组合手段。给定一些可重用的模型和视图,控制器可以根据用户的需求选择适当的模型进行处理,然后选择适当的视图将处理结果显示给用户。大大提高了程序的扩展性。

6、MVC适用范围

  使用MVC需要精心的设计,并且由于它的内部原理比较复杂,所以需要花费一些时间去理解它。将MVC运用到应用中,会带来额外的工作量,增加应用的复杂性,所以MVC不适合小型应用程序。但对于开发存在大量用户界面,并且业务逻辑复杂的大型应用程序,MVC将会使软件在健壮性和代码可重用性方面上一个新的台阶,会大大提高后期开发的效率。

创建采用JSP Model2的Web应用

posted @ 2022-05-10 17:34  Tiger-Adan  阅读(626)  评论(0编辑  收藏  举报