Spring MVC处理的流程:
具体执行步骤如下:
1 首先用户发送请求给前端控制器,前端控制器根据请求信息(如url)来决定选择哪一个页面控制器进行处理并把请求委托给它,即以前的控制器的控制逻辑部分;图中的1、2步骤
2 页面控制器接收到请求后,进行功能处理,首先需要收集和绑定请求参数到一个对象,这个对象在spring web mvc中叫命令对徐爱那个,并进行验证,然后将命令对象委托给业务对象进行处理;处理完毕后返回一个ModelAndView(模型数据和逻辑视图名);图中3、4、5步骤
3 前端控制器收回控制权,然后根据返回的逻辑视图名,选择相应的视图进行渲染,并把模型数据传入以便视图渲染;图中的6、7步骤
4 前端控制器再次收回控制权,将响应返回给用户,图中的步骤8
Spring MVC 的运行原理
通俗版:
Spring MVC的执行流程就是一次请求和响应的过程:
1 首先,用户向服务器发送请求,请求被前端控制器 DispatherServlet 截获,DispatherServlet 对 url 进行解析
转交给HandlerMapping(处理器映射器)进行验证格式是否合法,如果不合法报异常;
合法合法向下传递交给HandlerAdapter(处理器适配器)准备调用某个Controller
2 获得Controller中的 配置信息,根据请求的地址和Controller中的配置信息找到对应的Controller中的方法
3 调用方法前,会自动将参数填充进来,如果需要的话也会做必要和格式转换,例如将json转换成对象,将表单键值对转换成对象
4 接着开始执行控制层的对应的方法
5 控制层的方法执行完成后,Controller 向 DispatcherServlet 返回一个 ModelAndView 对象。ModelAndView中包含视图名称和模型数据
6 然后SpringMVC 会根据配置文件中的视图解析器找到相应的视图,并结合Model进行渲染
7 将视图渲染的结果返回给客户端
流程图:
具体执行流程为:
然后转交给HandlerMapping(处理器映射器)进行验证格式是否合法,如果不合法报异常,
如果合法向下传递交给HandlerAdapter(处理器适配器)准备调用某个Controller,
Controller在进入之前一般都需要执行HandlerInterceptor拦截器的preHandle()方法,
判断是否可以调用Controller.如果可以调用才能进入Controller
当Controller执行完成后再次进入拦截的postHandle验证传递内容是否合法
如果合法交给ViewResovler(视图解析器)调用具体的View视图资源.调用成功后再次进入拦截器的afterCompletion做最后验证,如果一切正确,响应给客户端。
到此,SpirngMVC执行结束.