学习学习springmvc
在MVC框架中,控制器(Controller)用于执行业务逻辑并产生模型数据(Model),而视图(View)则用于渲染模型数据
作为一个MVC框架,它们都会封装并提供一些基本的组件和功能以便解放程序员的双手:
--分发请求的前端控制器(SpringMVC中的DispatcherServlet)
--处理请求的业务控制器(SpringMVC中的Controller)
--请求URI与请求处理方法的匹配(SpringMVC中的HandlerMapping)
--请求处理方法的调用(SpringMVC中的HandlerAdapter)
--类型转换问题 —— 前后台数据的流转
--数据校验
--异常配置
--国际化和标签库
--文件上传/下载
SpringMVC的执行流程
1、用户向服务器发送请求,请求被Spring MVC的前端控制器DispatcherServlet截获;
2、DispatcherServlet对请求URL(统一资源定位符)进行解析,得到URI(请求资源标识符)。然后根据该URI,调用
HandlerMapping获得该Handler配置的所有相关对象,包括Handler对象以及Handler对象对应的拦截器,这些对象会被封装到
一个 HandlerExecutionChain对象对象 当中返回;
3、DispatcherServlet根据获得的Handler,选择一个合适的HandlerAdapter。一个HandlerAdapter会被用于处理多种(一
类)Handler,并调用Handler实际处理请求的方法;
4、在调用Handler实际处理请求的方法之前,HandlerAdapter 首先会结合用户配置对请求消息进行转换(例如,将JSON/XML
请求消息转换成一个Java对象),然后通过DataBinder将请求中的模型数据绑定到Handler(Controller)对应的处理方法的参数
中。在消息转换和数据绑定过程中,Spring MVC会做一些额外的处理,比如数据类型转换、数据格式化工作和数据合法性校
验等;
5、Handler调用业务逻辑组件完成对请求的处理后,向DispatcherServlet返回一个ModelAndView对象,ModelAndView对象
中应该包含视图名或者视图名和模型;
6、DispatcherServlet根据返回的ModelAndView对象,选择一个合适的ViewResolver(视图解析器)返回给
DispatcherServlet;