文章目录
1. SpringMVC 执行原理
老文档: https://docs.spring.io/spring-framework/docs/4.3.24.RELEASE/spring-framework-reference/html/
比新文档清晰
https://docs.spring.io/spring-framework/docs/4.3.24.RELEASE/spring-framework-reference/html/mvc.html
Spring:大杂烩(容器),我们可以将 SpringMVC 中所有要用到的 bean,注册到 Spring 中
我们为什么要学习 SpringMVC :
没有什么是加一层解决不了的 (适配器模式)
学 SpringMVC 建议全用注解
图为 SpringMVC 的一个较完整的流程图,实现表示 SpringMVC 框架提供的技术,不需要开发者实现,虚线表示需要开发者实现。
语言描述:
- 用户发起请求 URL 时,经过前端控制器 DispatcherServlet
- DispatcherServlet 根据这个请求 URL 调用 映射器 HandlerMapping 查找处理器 Handler
- 处理器根据 URL 查找控制器
- HandlerExecution 处理器将解析后的信息返回前端控制器 DispatcherServlet
- 前端控制器 DispatcherServlet 根据映射信息寻找适配器 HandlerAdapter(说白了就是一个 Controller)
- 让具体的 Controller 去执行
- 执行完返回一个具体的 ModelAndView 给 HandlerAdapter
- 再传给前端控制器 DispatcherServlet
- 前端控制器 DispatcherServlet 通过 ModelAndView 去配置具体的视图解析器
- 视图解析器将解析的具体逻辑视图名传回前端控制器 DispatcherServlet
- 前端控制器根据视图解析器解析的视图结果,调用具体的视图
- 最终将视图呈现给用户
我们只需做两件事 :
- Controller 层去调业务层
- 设置视图返回的名字
2. 一个 HelloSpringMVC 程序
2.1 配置 web.xml
接上图
2.2 配置 SpringMVC
结果如下
2.3 业务操作
2.4 jsp
2.5 404 解决办法
有时代码运行不成功 不一定是代码问题 - > 可能是环境问题(web 阶段有很多这样的情况)
Artifacts - > lib