MVC模式
MVC模式
MVC(Model, View, Controller)是一种软件设计模式,其目的是为了将Model和View的代码进行分离,从而使一个程序可以使用不同的表现形式。
- Model(模型):表示企业数据和业务规则,可以被多个视图重用;
- View(视图):与用户交互的界面。主要是由HTML元素组成的界面。
- Controller(控制器):负责接收用户提交的请求,并决定调用哪个模型处理请求,然后确定采用哪个视图来显示返回的数据。

MVC好处
- 职责单一,互不影响
- 有利于分工协作
- 有利于组件重用
三层架构的缺点
一个Servlet只能处理一个请求。

MVC模式
达到一个Servlet可以处理多个请求。

MVC 落地:一个 Servlet 处理多个请求(两种常见路由方式)
- 按路径分发(更贴近 REST)
- 让 Controller Servlet 映射到
/brand/*这类路径 - 在 Servlet 里根据
pathInfo决定调用哪个方法(list/add/update/delete)
- 让 Controller Servlet 映射到
- 按参数分发(更传统)
- 统一入口
/brand?action=list - 用
action参数决定执行分支
- 统一入口
两者本质一样:Controller 做“路由 + 参数读取 + 调用 Model(Service) + 选择 View/输出”。
关联:Servlet-获取请求参数 / Servlet-响应数据 / urlPattern的配置 / 请求路径的问题
Model 与三层的关系
- Controller:Servlet(接收请求/分发)
- Model:Service + DAO(业务规则 + 数据访问)
- View:JSP/HTML(传统)或前端页面(前后端分离)
如果是 JSP 视图,Controller 往 request/session 放数据,再 forward 到 JSP 渲染;如果是前后端分离,Controller 直接输出 JSON(关联:Ajax / 前后端分离开发)。
异步调用中的MVC
在mvc中的view发生变化,后端服务器中的Model也发生了变化,采用json将model对象序列化,与前端交换数据。

与框架的衔接
当 Controller 的路由、参数绑定、返回 JSON、异常处理等“样板代码”越来越多时,通常会引入框架(如 Spring MVC)把这些能力标准化。