Spring|Spring MVC 笔记之(工作流程)
遇到过的问题
- mysql无法修改密码
- sql文件执行里面的`被我写成了'()
- 启动tomcat500
- 其他照着教程做却无法运行起来的问题(试过了2次)
- Java springmvc web项目,基于maven的hello world入门级项目使用IntelliJ IDEA 2017版本)
- 开源中国的系列教程
因此先将Spring MVC的工作流程梳理了一下,以下仅是一个刚学习者的的个人的初步理解,部分内容可能存在出于理清、归类的需要而产生的个人猜测,待我理解更深入了再来更新此文章,希望在此之前没人看到,没人看到,哈哈。。
如有错误欢迎指出,非常感谢。
Spring MVC概貌:
文章图片
Sping MVC概览
其中1 、2、3、4按照次序执行。下面将依据这张图,举例梳理一次最简单的请求的大概流程
HTTP Request
- 浏览器发起请求:http://localhost:8080/HelloWeb/hello.jsp
- 根据
web.xml
配置,通过*.jsp找到HelloWeb这个servlet-mapping
HelloWeb
*.jsp
- 然后请求被转发到DispatcherServlet:
HelloWeborg.springframework.web.servlet.DispatcherServlet1
DispatcherServlet 下面的四个工作流程都归DispatcherServlet来调度
1、HandlerMapping
HandlerMapping
开始工作:根据映射配置找到dispatcher- 由
servlet-mapping
映射到的HelloWeb确定,下一步将要去同级目录下的HelloWeb-servlet.xml
文件中去找更多的配置 - DispatcherServlet查找到
HelloWeb-servlet.xml
中的
,将开始从这个包下面去寻找加了Spring注解@Controller
的类来处理这个请求 - 找到了一个这样的类:
@Controller
@RequestMapping("/hello")
public class HelloController{
@RequestMapping(method = RequestMethod.GET)
public String printHello(ModelMap model) {
model.addAttribute("message", "Hello Spring MVC Framework!");
return "hello";
}}
2、Controller 到这一步,
Controller
开始工作了,可以看到类名上加了 @Controller
注解,以及一个@RequestMapping
注解,这个注解表明,所有的/hello
请求都在这里处理- 其中方法
printHello()
返回了字符串"hello"
,参数中的ModelMap
是Spring框架传递过来给你加处理,以后是要被传递到view中用来渲染的。 -
Spring框架
定位到HelloWeb-servlet.xml
中的
找到配置的ViewResolver
3、ViewResolver 下面
ViewResolver
开始工作-
Controller
中的处理结果中,方法返回了一个字符串"hello"
,根据规则,在"hello"
上加前缀(prefix)"/WEB-INF/jsp/"
和后缀(suffix)".jsp"
,拼成"/WEB-INF/jsp/hello.jsp"
- 根据此路径,找到对应的jsp文件:
Hello Spring MVC - 锐客网
${message}
4、View
View
开始工作了:创建JSP页面,并将之前Spring在Controller
中传递给hello()
方法的参数message取出来,传递到页面的${message}中。HTTP Response 【Spring|Spring MVC 笔记之(工作流程)】DispatcherServlet将渲染好的View返回给浏览器
至此,一次请求-响应完成。
Reference:
Spring - MVC Framework Overview
推荐阅读
- EffectiveObjective-C2.0|EffectiveObjective-C2.0 笔记 - 第二部分
- Activiti(一)SpringBoot2集成Activiti6
- Android中的AES加密-下
- SpringBoot调用公共模块的自定义注解失效的解决
- 解决SpringBoot引用别的模块无法注入的问题
- 【读书笔记】贝叶斯原理
- 【韩语学习】(韩语随堂笔记整理)
- 人性的弱点-笔记
- 读书笔记:博登海默法理学|读书笔记:博登海默法理学 —— 正义的探索(1)
- D034+3组苏曼+《写作这回事》读书笔记