springMVC简介
SpringMVC是基于MVC设计模型应用于表现层的轻量级web框架。是对于原生servlet的封装,原先我们有多少个业务就需要通过实现接口的方法实现多少个servlet,
而现在SpringMVC对servlet做了封装,只需要由dispatcherServlet前端控制器和客户端进行交互,由dispatcherServlet前端控制器 根据规则转发请求到对应的控制器,
然后返回结果由DispatcherServlet响应给客户端;
执行基本流程
定义dispatcherServletHandler前端控制器,mapper-url拦截路径配置;
xml配置扫描包,视图解析器,处理器映射器;
dispatcherServlet与前端进行交互,接收客户端请求,然后调用mapperHandler查询对应的处理器和拦截处理器(如果有);
mapperHandler根据url返回给disPatcherServlet,由于前端控制器去调用对应的handlerAdapter适配器(由于handler的形式有多种,比如注解定义,接口实现,原生servlet等需要适配)
执行handler,handler返回对应的modleAndView,包含了视图和数据;SpringMVC中的各大组件没有耦合关系,全部和dispatcherServlet交互;
SpringMVC九大组件
- mapperHandler(相当于handler注册表)前端控制器会调用当前组件,当前组件需要根据Url查询对应的handler和intecepter;
- handlerAdapter(处理器适配器)由于handler的形式有多种,比如注解定义,接口实现,原生servlet等,所以需要进行适配,在调用handler执行;
- handlerexceptionResolver(处理器异常处理)当handler发生异常时需要处理的事,比如异常封装,异常情况下的视图封装;
- ViewResolver(视图解析器)根据定义好的前缀和后缀进行拼接,找到对应的视图。主要是为了解决视图名称硬编码的问题;
- RequestToViewNameTranslator(请求转视图名)在当前请求里面没有传视图名称,当前组件会从请求中找出视图名称,比如请求路径;
- LocaleResolver(国际化)解析当前区域,比如中国的locale是zh-CH(表示一个区域);
- ThemeResolver(主题解析器)ThemeResolver 组件是用来解析主题的。主题是样式、图片及它们所形成的显示效果的集合。
- MultipartResolver(用于上传文件)通过将普通的请求包装成 Multipa