JavaWeb 21 MVC 三层架构

7.1 MVC 三层架构


什么是 MVC ?

答:Model view Controller 模型、视图、控制器

  • 模型:实体类,数据库中对应的 一个一个 字段。
  • 视图:JSP 写的页面
  • 控制器:Servlet(web 服务用来控制 整个 程序)

早些年开发的时候,我们知道 建立一个 网站。肯定是需要 写 web 资源,但是 数据又是 时刻更新的,所以还要 跟 数据库进行关联。但是 怎么 进行关联呢? 那肯定 就是 得 利用 Servlet 程序 在 Java 里面 进行 JDBC POJO 这些东西。就可以直接 进行关联。

JavaWeb 21 MVC 三层架构_第1张图片
这个 时候 ,能够看出来,才 两层的 结构而已。一个 是 用户 到 Servlet 然后 再到 与 数据库 进行 一个 关联。

控制层 --> 数据库

问题:程序十分的臃肿,而且不利于维护。servlet 的代码中(要处理请求、响应、视图的跳转、然后你还要 去 处理 JDBC 的代码,业务当中 所需要的逻辑代码。。。)

那我们怎么去解决问题呢?

在 架构师的世界中,一直流传着一句话。从古至今,架构这东西,一旦要解决某个问题,那么就肯定要从 添加一层 开始!如果一层不够,再加一层,俗称 架构千层饼

你们可能不信。。

但是在你们学习过的一个 例子里,就已经 确认了这个 真理。

那就是我们的 JDBC,你看 JDBC 当初就是解决不了 数据库 多样性的 混乱问题,所以 就 弄出来了一个 JDBC,然后 大家 都用 JDBC 就完事了。但是 JDBC 内部实现的一个逻辑,其实就是 多层的架构。

JavaWeb 21 MVC 三层架构_第2张图片
后来 我们的 MVC 就变成了 上面那个 样子。看起来是不是很复杂。实际上 就只是 多了 一层 而已。就是 业务层

但是 业务层 好像又 细分了一下。所以看起来就挺复杂的。

MVC 三层架构里:

  1. 控制层:负责 接收用户请求 交给业务层去做相关的业务,并返回给我数据 进行视图层的跳转

  2. 视图层:只做 数据的展示 界面的展示 提供给用户操作的空间 用户的操作和数据 最后其实都要交给 Servlet(控制层) 去 处理。

  3. 业务模型层:主要控制业务的一些操作 保存数据 修改数据 删除数据 查询数据

业务层里 细分了 三个部分:

  • service:服务部分,比如说 login 的服务,logout 的服务。
  • Dao:操作数据库的部分,我们 service 那部分 提供过来服务请求,需要通过 DAO 这部分 去写 JDBC 对数据库进行 操作。
  • JavaBean:POJO 属于 实体类,是 对于 数据库字段的 一一对应的 注解。是我们 service 和 DAO 等部分都要用到的!!是公共的 部分。

Model

  • 业务处理:业务逻辑(Service)
  • 数据持久层:CRUD(DAO 层)

View

  • 展示数据和界面
  • 提供连接 发起 Servlet 请求(a form img …这些都可以

Controller(Servlet)

  • 接收用户的请求:(req:请求 参数、Session 信息. . . . . .)
  • 交给业务层 处理 对应的代码
  • 控制 视图的 跳转

整体的 过程:

登录 --> 接收用户的登录请求(视图层发给servlet请求) --> 处理用户的请求(Controller发送这个请求给业务层) --> 业务层 要取到 相应的 登录数据 --> DAO 负责JDBC 取数据 然后可以自己判断,进行反馈给service 部分,也可以反馈数据让service 部分自己处理。--> 最后返回一个结果给 控制层去 进行 判断 --> 最后让 判断 true 跳转到 成功的 页面,否则 跳转到 失败的 页面。

你可能感兴趣的:(学习笔记,java,mvc,servlet,web,app)