前端控制器dispatcherServlet是springmvc的核心,springMVC与struts实现的MVC类似,都是通过一个servlet处理请求并将返回结果渲染到页面。
讲解原理前先对springmvc中几个重要的组件做下说明:
1、dispatcherServlet:前端控制器(单实例,第一个接收到url请求)
2、 handler mapping:处理映射器(查询请求url对应的控制器)
3、handler adapter:处理请求的适配器(为url适配对应的控制器)
4、controller:控制器(处理url请求,一般是将处理过程委托给一个或多个服务完成,返回数据模型model及跳转页面)
5、modelAndView:模型视图(控制器返回的数据模型及跳转的页面)
5、view resolver: 视图解析器(解析modelAndView 将数据渲染至指定的页面 )
以一个页面发起的请求为例:
页面请求第一站dispatcherServlet,前端控制器查询一个或多个处理映射器根据url携带的信息选择合适的控制器;
控制器将请求委托给其他服务处理返回对应的模型视图,将打包的模型视图返回给前端控制器;
前端控制器使用视图解析器将逻辑视图名匹配为一个指定的视图实现,数据渲染到视图上。