总结【记住】

用实际的例子来记忆:http://localhost:8080/SpringMVC/login

SpringMVC - ***重要***SpringMVC执行流程 + 写一个简单的SpringMVC_spring

 

 

1.***重要*** SpringMVC执行流程

实线:SpringMVC帮忙做的

虚线:需要自己实现

  • Controller实现具体的逻辑
  • 在ViewResolver里,设置/拼接视图返回的名字

 

SpringMVC - ***重要***SpringMVC执行流程 + 写一个简单的SpringMVC_视图解析器_02

 

SpringMVC - ***重要***SpringMVC执行流程 + 写一个简单的SpringMVC_视图解析器_03

 SpringMVC - ***重要***SpringMVC执行流程 + 写一个简单的SpringMVC_xml_04

 

2.SpringMVC原理代码展示(真实代码不这么写)

2.1 DispatchServlet请求分发器 的配置(SpringMVC核心)

SpringMVC - ***重要***SpringMVC执行流程 + 写一个简单的SpringMVC_视图解析器_05

 

 

 

SpringMVC - ***重要***SpringMVC执行流程 + 写一个简单的SpringMVC_spring_06

 

 

2.2 HandlerMapping处理器映射器, HandlerAdapter处理器适配器, ViewResolver视图解析器

SpringMVC - ***重要***SpringMVC执行流程 + 写一个简单的SpringMVC_图层_07

 

 

 

SpringMVC - ***重要***SpringMVC执行流程 + 写一个简单的SpringMVC_spring_08

 

 

 

 

2.3  Controller

通过实现Controller接口的缺点:

SpringMVC - ***重要***SpringMVC执行流程 + 写一个简单的SpringMVC_图层_09

 

 

返回值是ModelAndView

“视图跳转”时,把“test”就传给了上一步的ViewResolver视图解析器,拼接成“/WEB-INF/jsp/test.jsp/”。

DispatchServlet就会把这个jsp返回给用户。

SpringMVC - ***重要***SpringMVC执行流程 + 写一个简单的SpringMVC_mvc_10

 

 

 

 

2.4 什么样的请求会使用上一步的Controller呢?

当用户输入http://localhost:8080/SpringMVC/hello,会依据“/hello”来找controller.

因为这里的示例用的是BeanNameUrlHandlerMapping,所以会通过找一个叫“/hello”的bean,来找controller

SpringMVC - ***重要***SpringMVC执行流程 + 写一个简单的SpringMVC_mvc_11

 

 

 

SpringMVC - ***重要***SpringMVC执行流程 + 写一个简单的SpringMVC_xml_12

 

 

 

 

 

3.使用注解开发SpringMVC (推荐)

3.1 配置web.xml + 打包lib

SpringMVC - ***重要***SpringMVC执行流程 + 写一个简单的SpringMVC_xml_13

 

增加web application 支持(也就是配置web.xml),版本必须是4.0以上

SpringMVC - ***重要***SpringMVC执行流程 + 写一个简单的SpringMVC_xml_14

 

打包lib:

SpringMVC - ***重要***SpringMVC执行流程 + 写一个简单的SpringMVC_视图解析器_15

 

 

3.2 DispatchServlet请求分发器 保持不变

和2.1一样,保持不变

 

3.3 只保留ViewResolver视图解析器,增加...

SpringMVC - ***重要***SpringMVC执行流程 + 写一个简单的SpringMVC_mvc_16

 

 

3.4 Controller的变化

SpringMVC - ***重要***SpringMVC执行流程 + 写一个简单的SpringMVC_图层_17

 

 

3.5 创建视图层

SpringMVC - ***重要***SpringMVC执行流程 + 写一个简单的SpringMVC_mvc_18

 

 

 

Issue

404错误,缺少jar包

springMVC项目里,一旦跑不起来,需要手动创建lib包,把dependency都加入lib包内。

SpringMVC - ***重要***SpringMVC执行流程 + 写一个简单的SpringMVC_视图解析器_19