一、springMVC
MVC模型,Spring家族的牛逼框架之一,出自于这位爷之手,Rod Johnson。
二、核心架构
三、具体流程
- 用户请求
——>
DispatcherServlet控制器作为统一访问点,进行全局的流程控制。
- DispatcherServlet
——>
HandlerMappingHandlerMapping将会把请求映射为HandlerExecutionChain对象(包含一个Handler处理器和多个HandlerInterceptor拦截器)
- DispatcherServlet
——>
HandlerAdapterHandlerAdapter将会把处理器包装为适配器,从而支持多种类型的处理器。(适配器设计模式)
- HandlerAdapter
——>
处理器功能处理方法的调用HandlerAdapter将会根据适配的结果调用真正的处理器的功能处理方法,完成功能处理;并返回一个ModelAndView对象(包含模型数据、逻辑视图名)
- ModelAndView逻辑视图名称
——>
ViewResolverViewResolver将把逻辑视图名解析为具体的View,通过这种策略模式,很容易更换其他视图技术。
- View
——>
渲染View会根据传进来的Model模型数据进行渲染。
- 返回控制权给DispatcherServlet,由DispatcherServlet返回响应给用户,到此一个流程结束。
四、开发步骤
- 在web.xml中配置DispatcherServlet,从而拦截请求
- 在servletName-servlet.xml中配置HandlerMapping,将请求映射到处理器
- 在servletName-servlet.xml中配置HandlerAdapter,支持多种类型的处理器
- 在servletName-servlet.xml中配置ViewResolver,将逻辑视图名解析为具体视图技术
- 在servletName-servlet.xml中配置处理器Controller,进行业务逻辑处理
五、后续版本
- Spring2.5 引入注解式处理器支持,通过@Controller 和 @RequestMapping 注解定义我们的处理器类
需要通过处理器映射 DefaultAnnotationHandlerMapping 和处理器适配器 AnnotationMethodHandlerAdapter 来开启支
持@Controller 和 @RequestMapping 注解的处理器。
- Spring3.1提供新的@Contoller 和@RequestMapping 注解支持类
处理器映射 RequestMappingHandlerMapping 和 处理器适配器RequestMappingHandlerAdapter 组合来代替 Spring2.5 开始的处理器映射 DefaultAnnotationHandlerMapping 和处理器适配器AnnotationMethodHandlerAdapter