1.springmvc 官网参考地址:
2. springmvc 的介绍
Spring Web MVC是基于Servlet API构建的原始Web框架,所以从一开始就包含在spring框架中。
3.DispatcherServlet
springmvc像大多数web框架一样,作为一个核心的前端控制器。dispatherServlet 继承servlet 提供了分发客户端发送来的请求到相应的handler 中。这个模型平滑的支持不同的工作流。(页面请求,文件上传等);dispatcherServlet 是一个服务端应用程序,要想实现springmvc 作为控制层,则需要在web.xml 中将这个sevlet 配置进去,以便于这个servlet 使用spring 配置文件中的配置项。例如获取前端的request 请求,将携带的参数绑定到controller 中
4.web.xml 的配置
其实这个配置很类似于struts2 的配置,都是将核心控制器配置进来,以下是基于springmvc 的配置
org.springframework.web.context.ContextLoaderListener contextConfigLocation /WEB-INF/app-context.xml
app org.springframework.web.servlet.DispatcherServlet contextConfigLocation
classpath:spring-mvc.xml
1 app *.do
5. 特殊的bean
dispatcherServlet 只是作为前端控制器,具体的业务处理将交给特定的bean 进行处理。你可以自定义或者扩展特殊的bean 处理对应的业务场景。
A。 :根据客户端发送过来的request 请求,将请求映射到对应的处理器
B。HandlerAdapter:适配器 根据客户端的请求去匹配那个适配器处理这个请求,根据具体的细节划分对应的适配器
C。 :视图解析器,将controller 返回的数据封装到视图中,并寻找指定的视图进行展现
D。 :富文本解析器:例如返回pdf/img/excel 等
E。 :返回不同的主题
6.dispatcher 执行的过程
首先dispatcher 接受用户的请求,前端控制器接受到请求之后不自己做处理,而是委托给其他解析器进行处理,dispatcher 作为统一站点进行全局的流程控制。
handlerMapping 把从dispatcher 接收到的请求映射为HandlerExecutionChain 对象(包含一个Handler 处理器对象,多个拦截器)
handlerAdapter 将会把处理器包装成为适配器,从而支持多种类型的处理器。之后根据适配的结果调用正真的处理器,并返回一个modelAndView 对象(包含模型数据。逻辑视图名)
viewResolver 把逻辑视图名解析为具体的view
view 根据传递进来的模型数据将页面进行渲染
返回控制权给dispatcher ,并由他返回响应给用户