加载中...
前端控制器模式为 Web 应用设置一个统一的入口控制器,集中接收所有请求并负责分发、认证、日志等公共处理。它避免了逻辑分散,便于统一管理横切关注点,是 MVC 框架的常见基础结构。

| 中文名 | 前端控制器模式 |
| 英文名 | Front Controller |
| 所属层次 | Web 表现层 |
| 核心角色 | 控制器、分发器 |
| 典型实现 | Spring DispatcherServlet |
前端控制器模式(Front Controller)是一种 Web 表现层设计模式,它提供一个集中的处理器来接收应用收到的所有请求。该控制器负责初始化、请求预处理(如认证、日志、参数解析),并根据请求把控制权分派给具体的处理逻辑,最后统一处理响应与视图选择。
前端控制器模式由 Martin Fowler 等在企业应用架构模式中总结。与之相对的是每个页面各自独立处理请求的分散方式,后者会导致导航、权限、日志等公共逻辑在各处重复。前端控制器把这些横切关注点集中到唯一入口,再委派给分发器(Dispatcher)和具体命令或动作对象处理。绝大多数现代 Web 框架的核心都采用了这一结构。
前端控制器几乎是所有 MVC Web 框架的基础。例如 Java 的 Spring MVC 使用 DispatcherServlet 作为前端控制器,PHP 的众多框架以及各类单页应用路由都体现了这一思想。它适用于需要对全部请求施加统一策略的中大型 Web 应用。
问:前端控制器会不会成为性能瓶颈?答:由于所有请求都经过它,单点集中确实带来风险,但控制器本身通常只做轻量的分发和公共处理,真正耗时的业务在下游;配合无状态设计和水平扩展可缓解压力。
问:它和 MVC 中的控制器是同一个概念吗?答:不完全相同。前端控制器是接收全部请求的总入口,负责分发;MVC 中的控制器往往是处理具体某类业务的动作处理器,常由前端控制器分派调用。

| 中文名 | 前端控制器模式 |
| 英文名 | Front Controller |
| 所属层次 | Web 表现层 |
| 核心角色 | 控制器、分发器 |
| 典型实现 | Spring DispatcherServlet |
登录 后参与讨论
暂无讨论,来发表第一条评论吧