MVC开发模式和SpringMVC运行流程
MVC
- 视图(View)-对应组件JSP或者HTML文件
- 控制器(Controller)-对应组件:Servlet
- 模型(Model):对应组件:JavaBean
MVC优点
- 多视图共享一个模型,大大提高代码的可重用性
- MVC三个模块相互独立,松耦合架构
- 控制器提高了应用程序的灵活性和可配置性
- 有利于软件工程化管理
- 完美的系统架构=松耦合+高重用性+高扩展性
MVC缺点
- 原理复杂
- 增加了系统结构和实现的复杂性
- 视图对模型数据的低效率访问
SpringMVC的核心组件
SpringMVC请求处理流程
1. DispatcherServlet(前端控制器)
- Spring MVC最核心的类
- web.xml中配置
2. Handler(处理器):对应MVC中C(Controller层)
- 类型:Object
- 作用:实际处理请求
- 标注了@RequestMapping的所有方法都可以看作时一个Handler
3. ModelAndView
- 逻辑视图名
- 模型对象
4. HandlerMapping(处理器映射)
- BeanNameUrlHandlerMapping(默认):将请求URL映射到同名的控制器Bean上
- DefaultAnnotationHandlerMapping;将请求映射到@RequestMapping注解的控制器和处理方法上
5. HandlerAdapter(适配器)
- AnnotationMethodHandlerAdapter
- RequestMappingHandlerAdapter
6. ViewResolver(视图解析器)
- InternalResourceView
springMVC的功能
- 清晰地角色划分
- 灵活地配置功能
- 提供了大量的控制器接口和实现类
- 真正做到了与View层的实现无关(JSP、Velocity、Xslt)等
- 国际化支持
- 面向接口编程
- Spting提供了Web应用开发的一整套流程,不仅仅是MVC,他们之间可以很方便的结合在一起