JavaWeb之MVC设计模式

renzhenmjr 2015-07-24

了解MVC模式之前,我们先来看下面两种设计模式:

模式一:


JavaWeb之MVC设计模式
 

模式二:


JavaWeb之MVC设计模式
 

 以上两种模式的缺点:

模式一:页面的显示使用servlet实现时,需要大量的拼接html字符串,不直观,效率低。

模式二:逻辑处理代码卸载jsp页面中,不易调试,且代码耦合度高,不易重用。

为了解决以上缺点,我们采用下图的MVC模式:


JavaWeb之MVC设计模式
 采用此模式,让jsp仅负责显示,让servlet负责如何处理请求,调用那个业务逻辑处理请求,业务逻辑处理后采用哪个jsp页面显示。jsp和servlet各自发挥自己的长处,显示层于逻辑控制层解耦,程序的复用性增强。

MVC的概念

MVC是Model-View-Controller的简称,即模型-视图-控制器。

MVC是一种设计模式,它把应用程序分成三个核心模块:模型、视图、控制器,它们各自处理自己的任务。

模型(model)

模型是应用程序的主体部分,模型表示业务数据和业务逻辑。

一个模型能为多个视图提供数据。

由于应用于模型的代码只需写一次就可以被多个视图重用,所以提高了代码的可重用性。

视图

视图是用户看到并与之交互的界面,作用如下:

视图向用户显示相关的数据。

接受用户的输入。

不进行任何实际的业务处理。

控制器

控制器接受用户的输入并调用模型和视图去完成用户的需求。

控制器接收请求并决定调用哪个模型组件去处理请求,然后决定调用哪个视图来显示模型处理返回的数据。

关于 MVC

M: Model. Dao

V: View. JSP, 在页面上填写 Java 代码实现显示

C: Controller. Serlvet: 

受理请求

获取请求参数

调用 DAO 方法

可能会把 DAO 方法的返回值放入 request 中

转发(或重定向)页面

什么时候转发,什么时候重定向 ? 若目标的响应页面不需要从 request 中读取任何值,则可以使用重定向。(还可以防止表单的重复提交)

不足:

使用数据库连接池,DBUtils,JDBCUtils 工具类,DAO 基类

一个请求一个 Serlvet 不好!一个模块使用一个 Serlvet,即多个请求可以使用一个 Servlet 

在页面上加入 jQuery 提示

相关推荐