MVC

MVC

MVC: Model View Controller ----> 模型 视图 控制器

1. 早先年的架构

graph LR id1[用户] --> id2[控制器:Controller <br> Servlet <br> 1.接受用户的请求 <br> 2.响应给客户端内容 <br> 3.重定向或者转发] id1 --> id3[View:视图层 <br> JSP <br> 1.展示数据 <br> 2.提供可以供我们操作的请求] id2 --> id4[JavaBean <br> &#40 pojo &#41 <br> &#40 entity &#41] id3 --> id4 id5[Servlet和JSP都可以写Java代码 <br> 为了易于维护和使用,我们约定: <br> Servlet专注于处理请求,以及控制视图的跳转 <br> JSP专注于显示数据] id4 --JDBC--> id6[数据库]

用户解访问控制层,控制层就可以直接操作数据库

Servlet -- CRUD --> 数据库

弊端:程序十分臃肿,不利于维护

Servlet的代码中:处理请求,响应,跳转请求,处理JDBC,处理业务代码,处理逻辑代码

架构:没有说明是加一层解决不了的!(例如:JDBC)

2. MVC三层架构

graph BT id1[用户] --> id3[View:视图层 <br> JSP <br> 1.展示数据模型 <br> 2.提供用户操作] id7 --select--> id4[Dao] id2 --转发或者重定向--> id3 id3 --操作--> id2[控制器:Controller <br> Servlet <br> 1.接受用户的请求 <br> 2.交给业务层去做 <br> 3.视图跳转] id5[Servlet和JSP都可以写Java代码 <br> 为了易于维护和使用,我们约定: <br> Servlet专注于处理请求,以及控制视图的跳转 <br> JSP专注于显示数据] id4 --JDBC--> id6[数据库] id2 --> id7[Service <br> &#40 login &#41 <br> &#40 logout &#41 <br> &#40 查询全部用户 &#41] id4 --> id7 id7 --> id2 id3 --返回给用户的页面中就会存在数据--> id1 subgraph Model:控制业务操作,保存数据,<br>修改数据,删除数据,查询数据 id4 id7 id8[JavaBean <br> &#40 pojo &#41 <br> &#40 entity &#41] end

1. Model

  • 业务处理:业务逻辑(Service)

  • 数据持久层:CRUD(Dao)

2. View

  • 展示数据
  • 提供链接发起Servlet请求(a, form, img...)

3. Conroller(Servlet)

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

4. 以登录举例

graph TD id1[登录] --> id2[接收用户的登录请求] id2 --> id3[处理用户的请求 &#40获取用户登录的参数:username,password&#41] id3 --> id4[交给业务层处理登录业务&#40判断用户名密码是否正确:事务&#41] id4 --> id5[Dao层查询用户名和密码是否正确] id5 --> id6[数据库]
原文地址:https://www.cnblogs.com/wang-sky/p/13535904.html