用实际的例子来记忆:http://localhost:8080/SpringMVC/login
1.***重要*** SpringMVC执行流程
实线:SpringMVC帮忙做的
虚线:需要自己实现
- Controller实现具体的逻辑
- 在ViewResolver里,设置/拼接视图返回的名字
2.SpringMVC原理代码展示(真实代码不这么写)
2.1 DispatchServlet请求分发器 的配置(SpringMVC核心)
2.2 HandlerMapping处理器映射器, HandlerAdapter处理器适配器, ViewResolver视图解析器
2.3 Controller
通过实现Controller接口的缺点:
返回值是ModelAndView
“视图跳转”时,把“test”就传给了上一步的ViewResolver视图解析器,拼接成“/WEB-INF/jsp/test.jsp/”。
DispatchServlet就会把这个jsp返回给用户。
2.4 什么样的请求会使用上一步的Controller呢?
当用户输入http://localhost:8080/SpringMVC/hello,会依据“/hello”来找controller.
因为这里的示例用的是BeanNameUrlHandlerMapping,所以会通过找一个叫“/hello”的bean,来找controller。
3.使用注解开发SpringMVC (推荐)
3.1 配置web.xml + 打包lib
增加web application 支持(也就是配置web.xml),版本必须是4.0以上
打包lib:
3.2 DispatchServlet请求分发器 保持不变
和2.1一样,保持不变
3.3 只保留ViewResolver视图解析器,增加...
3.4 Controller的变化
3.5 创建视图层
Issue
404错误,缺少jar包
springMVC项目里,一旦跑不起来,需要手动创建lib包,把dependency都加入lib包内。