SpringMVC执行原理
SpringMVC是Spring框架的一个子模块,是一个web开发框架,支持MVC模式的web开发。
- M-Model 模型(完成业务逻辑:由javaBean构成,service+dao+entity)
- V-View 视图(做界面的展示 jsp,html等)
- C-Controller 控制器(接收请求—>调用模型—>根据结果派发页面)
1)原理图
2) 执行过程
- 客户端,即用户发出请求到前端控制器(DispatchServlet),前端控制器负责调用系统的其他模块处理用户的请求
- DispatchServlet接收到请求后,根据请求的信息(包括URL,协议方法,请求头,请求参数,Cookie等)(解析xml或通过注解方式得到)以及HandlerMapping(根据URL去查找处理器)的配置,找到相应的请求处理器(Handler),任意一个对象都可以作为请求处理器
- 找到相应的处理器后,向DispatchServlet返回执行链(HandlerExecutionChain)
- DispatchServlet通过调用Spring对处理器进行封装好的HandlerAdapter,执行相应的Handler
- HandlerAdapter执行对应Handler
- Handler对请求进行处理,处理完成后将ModelAndView(包含数据模型和相应的视图信息)返回给HandlerAdapter
- HandlerAdapter再讲ModelAndView返回给DispatchServlet
- DispatchServlet调用视图解析器(ViewResolver)完成从逻辑视图到真实视图对象的解析工作
- ViewResolver返回真实视图给DispatchServlet
- DispatchServlet得到真实视图对象后,利用视图对象对数据模型进行渲染
- DispatchServlet向客户端返回渲染结果