认识SpringMVC
SpringMVC 框架是以请求为驱动,围绕 Servlet 设计,将请求发给控制器,然后通过模型对象,分派器来展示请求结果视图。其中核心类是 DispatcherServlet,它是一个 Servlet,顶层是实现的Servlet接口。
SpringMVC 处理请求过程
- 客户端发起请求,会首先经过前端控制器 DispatcherServlet 进行转发,转发到 Handler Mapping
- DispatcherServlet 从 Handler Mapping 查找处理请求的 Controller,Handler Mapping 作用就是完成 URL 到 Controller 的映射
- Controller 处理请求并返回 ModelAndView 对象,ModelAndView 是封装结果视图的组件
- 再将视图结果返回给客户端
Servlet 与 SpringMVC
SpringMVC 是在 Servlet 的基础上进行了扩展,看看他们的继承关系是什么样的。
Servlet 继承关系
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% 零配置