- springmvc 是前端显示框架,主要分为三层controller(控制层)、model(模型层)、view(视图层)。
核心组件:
- DispachterServlet:前端控制器,负责调度其他组件的执行。降低耦合度
- handler:处理器,完成具体业务逻辑,相当于Servlet或Action。
- HandlerMapping DispachterServlet 通过HandlerMapping 将请求映射到不同的 handler,即通过HandlerMapping 查找url对应的Handler。
- HandlerInterceptor 处理器拦截器,接口,做拦截处理
- HandlerExecutionChain 处理器执行链,包括handler 和HandlerInterceptor。
- HandlerAdapter 处理器适配器。处理 表单的验证、数据类型的转换、将表单数据封装到POJO等
- ModelAndView 封装了模型数据和视图信息,作为Handler的处理结果。返回给DispatcherSeverlet.
- ViewResolver 视图解析器, Dispatcher通过View Resolver,将逻辑视图解析成物理视图,返回客户端。
工作流程:
(1) 客户端发送请求到DispatcherServlet,DispatcherServlet 通过HandlerMapping,查找对应的Handler,
(2) 生成 handler 和HandlerInterceptor,以HandlerExecutionChain 形式,返回 DispachterServlet。
(3) DispachterServlet 通过 HandlerAdapter 处理器适配器,调用handler方法,处理Handler中的内容。去model层查询数据,获取数据后返回。
(4) 生成ModelAndView 对象,并返回DispachterServlet。
(5)DispachterServlet 将获取到的对象ModelAndView 传给视图解析器 ViewResolver,将逻辑视图解析成物理视图,返回view给DispachterServlet。
(6)DispachterServlet 将渲染后的视图响应给客户端。