1.Spring-MVC是为web开发准备的MVC框架,spring2.5版本开始支持注解配置,使得易用性得到大幅提高。
2.spring包含的核心类和接口
1).DispatcherServlet类(前置控制器)=>主要用作职责调度工作,本身主要负责流程的控制:
文件上传解析,如果请求类型是multipart将通过MultipartResolver进行文件上传解析;
通过HandlerMapping,将请求映射到处理器(返回一个HandlerExecutionChain,它包括一个处理器、多个HandlerInterceptor拦截器);
通过HandlerAdapter支持多种类型的处理器(HandlerExecutionChain中的处理器);
通过ViewResolver解析逻辑视图名到具体视图实现;
本地化解析;
渲染具体的视图等;
如果执行过程中遇到异常将交给HandlerExceptionResolver来解析。
2).HandlerMapping接口=>处理请求的映射
其实现类:
SimpleUrlHandlerMapping通过配置文件,把一个URL映射到Controller
DefaultAnnotationHandlerMapping 通过注解,把一个URL映射到Controller类上
3).HandlerAdapter接口=>处理请求的映射
其实现类:
AnnotationMethodHandlerAdapter类,通过注解,把一个URL映射到Controller类的方法上
4).Controller接口=>控制器
使用@Controller注解的类可以担任控制器(Action)的职责,不需要使用这个接口。
5).ViewResolver接口=>定义了resolverViewName方法,根据viewName创建合适类型的View实现
其实现类:
UrlBasedViewResolver类通过配置文件,把一个视图名交给到一个View来进行处理
InternalResourceViewResolver类,比上面的类,加入了JSTL的支持
6).HandlerExceptionResolver接口=>异常处理
3.Spring-MVC核心流程图如下: