JavaWeb之MVC设计模式
了解MVC模式之前,我们先来看下面两种设计模式:
模式一:
模式二:
以上两种模式的缺点:
模式一:页面的显示使用servlet实现时,需要大量的拼接html字符串,不直观,效率低。
模式二:逻辑处理代码卸载jsp页面中,不易调试,且代码耦合度高,不易重用。
为了解决以上缺点,我们采用下图的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 提示