SpringMVC 的执行原理
SpringMVC 的执行原理
关键词: Spring MVC
SpringMVC 是一个web 框架,它实现了 MVC 三层架构。
大体上来说,SpringMVC 通过 DispatchServlet 拦截用户请求的 url,
然后决定交给哪一个 controller 处理
举一个例子:
- 假设用户输入 url 为
http://localhost:8080/SpringMVC/hello
http://localhost:8080
是服务器域名- SpringMVC 表示部署在服务器上的web站点
- hello表示控制器
通过分析,如上url表示为:
请求位于服务器localhost:8080上的SpringMVC站点的hello控制器。
-
HandlerMapping为处理器映射。
DispatcherServlet调用 HandlerMapping,
HandlerMapping根据请求url查找Handler。 -
HandlerExecution表示具体的Handler,其主要作用是根据url查找控制器,如上url被查找控制器为: hello。
-
HandlerExecution将解析后的信息传递给DispatcherServlet,如解析控制器映射等。
-
HandlerAdapter表示处理器适配器,其按照特定的规则去执行Handler。
-
Handler让具体的Controller执行。
-
Controller将具体的执行信息返回给HandlerAdapter,如ModelAndView.
-
HandlerAdapter将视图逻辑名或模型传递给DispatcherServlet.
-
DispatcherServlet调用视图解析器(ViewResolver)来解析HandlerAdapter传递的逻辑视图名。
-
视图解析器将解析的逻辑视图名传给DispatcherServlet。
流程图如下,转自秦疆
Controller 部分代码
import org.springframework.web.servlet.Mode1Andview; import org.springframework.web.servlet.mvc.Controller; import javax.servlet.http.HttpservletRequest; import javax.servlet.http.HttpServletResponse; //注意:这里我们先导入controller接口 public class Hellocontroller implements Controller { public NodelAndview handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception { //ModelAndView模型和视图 ModelAndview mv = new ModelAndview(); //调用业务层,暂时不写 //封装对象,放在ModelAndView中 mv.add0bject( attributeName: "msg" , attributeValue: "HelloSpringWVC!"); // 封装要跳转的视图,放在ModelAndView中 // 后续会依据配置,使用 name 拼接成 WEB-INF/jsp/hello.jsp, // 相当于告诉 SpringMVC 要将数据交给哪个 jsp mv.setviewName("hello"); return mv; } }
如果您有任何关于文章的建议,欢迎评论或在 GitHub 提 PR
作者:dutrmp19
本文为作者原创,转载请在 文章开头 注明出处:https://www.cnblogs.com/dutrmp19/p/16005567.html
遵循 CC 4.0 BY-SA 版权协议
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?