认识SpringMVC

SpringMVC 框架是以请求为驱动,围绕 Servlet 设计,将请求发给控制器,然后通过模型对象,分派器来展示请求结果视图。其中核心类是 DispatcherServlet,它是一个 Servlet,顶层是实现的Servlet接口。

SpringMVC从基础到源码

SpringMVC 处理请求过程

SpringMVC从基础到源码

  • 客户端发起请求,会首先经过前端控制器 DispatcherServlet 进行转发,转发到 Handler Mapping
  • DispatcherServlet 从 Handler Mapping 查找处理请求的 Controller,Handler Mapping 作用就是完成 URL 到 Controller 的映射
  • Controller 处理请求并返回 ModelAndView 对象,ModelAndView 是封装结果视图的组件
  • 再将视图结果返回给客户端

Servlet 与 SpringMVC

SpringMVC 是在 Servlet 的基础上进行了扩展,看看他们的继承关系是什么样的。

Servlet 继承关系

SpringMVC从基础到源码

SpringMVC 继承关系

SpringMVC从基础到源码

Servlet 与 SpringMVC 对比

  • Servlet 需要每个请求都在 web.xml 文件中配置一个 sevlet 节点
  • SpringMVC 的 DispatcherServlet 会拦截所有请求,让 Controller 去处理

Structs2 与 Spring MVC

相同点

  • 都是基于MVC模型的

不同点

  • Structs2 是基于类的,一个 request 创建一个 action,一个action 对应一个 request ;Servlet 是基于方法的,也就是一个 request 对应一个方法
  • Structs2 入口是 Filter;SpringMVC 入口是 Servlet
  • SpringMVC 的开发速度和性能优于 Structs2 ,流程更易理解
  • SpringMVC 和 Spring 是无缝的,可以认为 SpringMVC 是100% 零配置

相关文章: