1、SpringMVC的执行流程:
发送请求——>DispatcherServiet捕获——>HandlerMapping查找Handler返回HandlerExecutionChain——>执行Handler返回ModelAndView ——>选择ViewResoler渲染视图——>返回客户端
1、客户端向服务器发送请求,请求被前端控制器DispatcherServlet捕获。
2、DispatcherServlet对请求URL进行解析,得到请求资源标识符URI,通过URI调用HandlerMapping处理器映射器获取Handler配置的所有相关对象,返回Handler和HandlerExecutionChain。
3、DispatcherServlet根据获得的Handler选择一个适合的HandlerAdapter处理器适配器,提取Request中的模型数据,填充Handler入参,执行Controller,返回一个ModlerAndView。
4、DispatcherServlet根据返回的ModlerAndView选择一个合适的ViewResoler。
5、DispatcherServlet通过ViewResoler结合Model和View来渲染视图。并将渲染结果返回给客户端。
2、Struts2的执行流程:
发送请求——>StrutsPrepareAndExecutionFilter拦截——>ActionMapper判断——>ConfigurationManager查找——>创建ActionInvocation实例——>执行相关拦截器——>响应客户端
1、客户端发送请求,经过一系列的过滤器,被核心过滤器StrutsPrepareAndExecutionFilter进行拦截。
2、StrutsPrepareAndExecutionFilter通过ActionMapper来判断是否需要Action来处理,不需要就继续执行,需要的话就交给ActionProxy处理。
3、ActionProxy通过ConfigurationManager询问框架的配置文件Struts.xml找到对应的Action。
4、创建一个ActionInvocation实例,调用对应的方法获取结果集的name,在调用的前后会执行相关的拦截器。
5、通过结果集的name找到对应的结果集对浏览器进行响应。