Spring Web MVC 笔记

Spring Web MVC 流程

Dispatcher Servlet

这是一个前端分派 Servlet(前端控制器模式),外部所有的请求都会先到达这里,然后由其将请求分派给其他组件进行实际的处理。

Handler Mapping

处理器映射,由 DispatcherServlet 通过 url 信息查询映射表,确定该请求要分派给哪个 Controller(即 Handler)。

Controller

请求被从 DispatcherServlet 发送到合适的 Controller 后,会在这里卸下它的负载(request context)并等待控制器处理这些信息。

实际上,设计良好的 Controller 本身只处理很少的工作(甚至根本不处理),而是将业务逻辑委托给一个或多个 Service 对象进行处理。

在处理完信息后,Controller 将模型数据打包进 Model 中,然后内部会自动将 Model 和 ViewName 打包成 ModelAndView 回传给 DispatcherServlet。(如果该方法有 @Repsonsebody 注解,则会跳过后面的视图解析,直接写入流)

Service

业务逻辑应该在这里实现

Repository

即 DAO(Data Access Object),专门连接数据库做增删查改用。

View Resolver

视图解析器,通过 Controller 返回的 ViewName 查询对应的 View。

View

这是请求的最后一站,在这里,View 得到 Model 对象,并将该对象中的数据渲染,然后该输出会被作为响应体返回给客户端。

参考

附:完整的运行流程

猜你喜欢

转载自www.cnblogs.com/kirito-c/p/9220866.html