MVC模式

MVC模式

MVC(Model, View, Controller)是一种软件设计模式,其目的是为了将Model和View的代码进行分离,从而使一个程序可以使用不同的表现形式。

MVC好处

三层架构的缺点

一个Servlet只能处理一个请求。

MVC模式

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

MVC 落地:一个 Servlet 处理多个请求(两种常见路由方式)

  1. 按路径分发(更贴近 REST)
    • 让 Controller Servlet 映射到 /brand/* 这类路径
    • 在 Servlet 里根据 pathInfo 决定调用哪个方法(list/add/update/delete)
  2. 按参数分发(更传统)
    • 统一入口 /brand?action=list
    • action 参数决定执行分支

两者本质一样:Controller 做“路由 + 参数读取 + 调用 Model(Service) + 选择 View/输出”。

关联:Servlet-获取请求参数 / Servlet-响应数据 / urlPattern的配置 / 请求路径的问题

Model 与三层的关系

如果是 JSP 视图,Controller 往 request/session 放数据,再 forward 到 JSP 渲染;如果是前后端分离,Controller 直接输出 JSON(关联:Ajax / 前后端分离开发)。

异步调用中的MVC

在mvc中的view发生变化,后端服务器中的Model也发生了变化,采用json将model对象序列化,与前端交换数据。

与框架的衔接

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