MVC开发模式和SpringMVC运行流程

MVC

  • 视图(View)-对应组件JSP或者HTML文件
  • 控制器(Controller)-对应组件:Servlet
  • 模型(Model):对应组件:JavaBean

MVC优点

  • 多视图共享一个模型,大大提高代码的可重用性
  • MVC三个模块相互独立,松耦合架构
  • 控制器提高了应用程序的灵活性和可配置性
  • 有利于软件工程化管理
  • 完美的系统架构=松耦合+高重用性+高扩展性

MVC缺点

  • 原理复杂
  • 增加了系统结构和实现的复杂性
  • 视图对模型数据的低效率访问

SpringMVC的核心组件

SpringMVC请求处理流程

MVC开发模式和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,他们之间可以很方便的结合在一起