Java程序员在开发一般都是MVC+三层架构,MVC是web开发模式,传统的Javaweb技术栈实现的MVC如下
原始Javaweb开发中,Servlet充当Controller的角色,Jsp充当View角色,JavaBean充当模型角色,后期Ajax异 步流行后,在加上现在前后端分离开发模式成熟后,View就被原始Html+Vue替代。
原始Javaweb开发中, Service充当Controller有很多弊端,显而易见的有如下几个:
Servlet作为Controller的问题 | 解决思路和方案 |
---|---|
每个业务功能请求都对应一个Servlet | 根据业务模块去划分Controller |
每个Servlet的业务操作太繁琐 | 将通用的行为、功能进行抽取封装 |
Servlet获得Spring容器的组件只能通过客户端代码去获取,不能优雅的整合 | 通过Spring的扩展点,去封装一个框架,从原有的Servlet完全接手过来处理Web层的业务 |
负责共有行为的Servlet称之为前端控制器(DispatcherServlet),负责业务行为的JavaBean称之为控制器Controller
分析前端控制器基本功能如下:
- 具备可以映射到业务Bean的能力
- 具备可以解析请求参数、封装实体 等共有功能
- 具备响应视图及响应其他数据的功能