SpringMVC学习笔记(1)之入门篇
来源:互联网 发布:大众软件2016 7月 编辑:程序博客网 时间:2024/06/05 18:51
SpringMVC学习笔记
Springmvc框架
执行流程
1. 第一步:发起请求到前端控制器(DispatcherServlet)
2. 第二步:前端控制器请求HandlerMapping查找 Handler。
可以根据xml配置、注解进行查找
3. 第三步:处理器映射器HandlerMapping向前端控制器返回Handler
4. 第四步:前端控制器调用处理器适配器去执行Handler
5. 第五步:处理器适配器去执行Handler
6. 第六步:Handler执行完成给适配器返回ModelAndView
7. 第七步:处理器适配器向前端控制器返回ModelAndView。
ModelAndView是springmvc框架的一个底层对象,包括Model和view
8. 第八步:前端控制器请求视图解析器去进行视图解析
根据逻辑视图名解析成真正的视图(jsp)
9. 第九步:视图解析器向前端控制器返回View
10. 第十步:前端控制器进行视图渲染
视图渲染将模型数据(在ModelAndView对象中)填充到request域
11. 第十一步:前端控制器向用户响应结果
相关组件
1. 前端控制器DispatcherServlet
1) 不需要程序员开发
2) 作用:接收请求,响应结果,相当于转发器,中央处理器。有了DispatcherServlet减少了其它组件之间的耦合度。
2、处理器映射器HandlerMapping
1) 不需要程序员开发
2) 作用:根据请求的url查找Handler
3、处理器适配器HandlerAdapter
1) 不需要程序员开发
2) 作用:按照特定规则(HandlerAdapter要求的规则)去执行Handler
4、处理器Handler
1) 需要程序员开发
2) 注意:编写Handler时按照HandlerAdapter的要求去做,这样适配器才可以去正确执行Handler。使用不同的处理器适配器,Handler实现的接口不同。
5、视图解析器View resolver
1) 不需要程序员开发
2) 作用:进行视图解析,根据逻辑视图名解析成真正的视图(view)
6、视图View
1) 需要程序员开发jsp
2) View是一个接口,实现类支持不同的View类型(jsp、freemarker、pdf...)
相关组件的配置
前端控制器
1. 位置:在web.xml中配置前端控制器。
非注解处理器映射器和适配器
1. 位置:在classpath下的springmvc.xml中配置处理器映射器。
处理器映射器
1. 第一种:org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping
2. 第二种:org.springframework.web.servlet.handler.SimpleUrlHandlerMapping
3. 多个映射器可以并存,前端控制器判断url能让哪些映射器映射,就让正确的映射器处理。
处理器适配器
1. 第一种:org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter
l 要求编写的Handler实现 Controller接口。
2. 第二种:org.springframework.web.servlet.handler.SimpleUrlHandlerMapping
l 要求编写的Handler实现HttpRequestHandler接口
注解处理器适配器和适配器
1. 位置:在classpath下的springmvc.xml中配置处理器适配器。
配置注解映射器和适配器
1. 第一种:分别配置
2. 第二种:自动配置
<mvc:annotation-driven></mvc:annotation-driven>
编写Handler
非注解式
1. 根据不同的非注解处理器映射器,编写Handler时继承不同的接口。
public class ItemsController1 implementsController {
@Override
public ModelAndView handleRequest(HttpServletRequest request,
HttpServletResponse response) throws Exception {
//数据填充
//返回ModelAndView
ModelAndView modelAndView = new ModelAndView();
//相当于request的setAttribut,在jsp页面中通过itemsList取数据
modelAndView.addObject("itemsList", itemsList);
//指定视图
modelAndView.setViewName("/WEB-INF/jsp/items/itemsList.jsp");
return modelAndView;
}
}
2. 将编写Handler在spring容器加载。
注解式
1. 通过注解声明Handler:
2. 在Spring容器中加载Handler
<context:component-scan base-package="cn.itcast.ssm.control"></context:component-scan>
视图解析器
1) 视图解析器配置前缀和后缀:
2) 程序中不用指定前缀和后缀:
小结:采用注解开发终极配置(实际开发使用)
源码分析
通过前端控制器源码分析springmvc的执行过程。
1. 第一步:前端控制器接收请求
调用doDiapatch
2. 第二步:前端控制器调用处理器映射器查找 Handler
3. 第三步:调用处理器适配器执行Handler,得到执行结果ModelAndView
4. 第四步:视图渲染,将model数据填充到request域。
1) 视图解析,得到view:
2) 调用view的渲染方法,将model数据填充到request域
3) 渲染方法:
- SpringMVC学习笔记(1)之入门篇
- springMVC学习笔记之入门案例
- SpringMvc学习之入门篇
- SpringMVC入门学习笔记
- SpringMvc学习笔记之1
- 入门Demo---SpringMVC学习笔记(二)
- 入门Demo---SpringMVC学习笔记(二)
- SpringMVC学习笔记(1):初识SpringMVC
- SpringMVC学习笔记(2)之与Mybatis整合篇
- SpringMVC入门学习1
- J2EE系列之SpringMVC学习笔记(一)--SpringMVC简介
- J2EE系列之SpringMVC学习笔记(二)--SpringMVC控制器
- J2EE系列之SpringMVC学习笔记(三)--SpringMVC控制器
- J2EE系列之SpringMVC学习笔记(四)--SpringMVC控制器
- SpringMVC学习笔记--(1)
- SpringMVC学习笔记(1)
- springmvc学习笔记(1)-框架原理和入门配置
- springmvc学习笔记(1)-框架原理和入门配置
- Liunx下用代码设置ip地址
- SpringMVC+Json构建基于Restful风格的应用
- Android 可以多选的分组联系人列表
- Android 四大组件 (三) ContentProvider 使用简介
- GDI和CDC是什么
- SpringMVC学习笔记(1)之入门篇
- machine-learning第五周 上机作业
- 分布式一致性算法:Paxos (学习总结)
- 搞了一天的stm32f207芯片库函数的I2C问题终于被解决了
- Python 高级特性之生成器表达式
- 航电ACM step1.2.3 Box of bricks
- Android资料之-EditText中的inputType
- Android内存优化之static使用篇
- 用VLFeat库进行k-means聚类(C++ 实现)