SpringMvc主要是三个Servlet:HttpServletBean,FramwworkServlet,DispatcherServlet,它们是依次继承的关系,其处理过程大致功能如下:

1.HttpServletBean:没有参与实际请求的处理。

2.FramwworkServlet:将不同的请求合并到processRequest方法统一处理,processRequest方法中做了三件事。

a.调用了doService模板方法具体处理请求

b.将当前请求的LocalContext和ServletRequestAttributes在处理请求前设置到了LocalContextHolder和RequestContextHolder,并在请求处理完成后回复。

c.请求处理完成发布了ServletRequstHandleEvent消息。

3.DispatcherServlet:doService方法给request设置了一些属性并将请求交给doDispatch方法具体处理。

 

SpringMvc九大组件:

1.HandlerMappping:它的作用是根据request找到相应的处理器Handler和Interceptors,该接口里面只有一个方法:

   HandlerExecutionChain getHandler(HttpServletRequest request) throws Exception;

2.HandlerAdapter:Handler适配器。HandlerApdater处理器适配器,作用是根据请求的url找到处理器的调用方法.

因为SpringMvc中的Handler可以是任何形式,只要能处理请求。但是Servlet需要的处理方法的结构确是固定的,都是以request和response为参数的方法,所以就需要HandlerApdater来适配。

最新文章

  1. new/delete重载
  2. 新浪云SAE搭建python环境 问题拾遗
  3. Makefile笔记之一 ------ 变量的引用及赋值
  4. 【转】Memcached安装
  5. 【转】Backbone标准例子——通讯录
  6. jquery-ui 的 主题 选择什么颜色? 建议使用html5 的标准进行书写, 更简洁!
  7. ArrayList集合&特殊集合
  8. 解决UITableView中Cell重用机制导致内容出错的方法总结
  9. 试用ubuntu-12.04.3-desktop-amd64(二)
  10. MapReduce架构和算法(2)
  11. wemall app商城源码中实现带图片和checkbox的listview
  12. spring boot rest例子
  13. postman简单教程,如何在请求中引用上次请求返回的值
  14. Nginx集群session管理的两种方式
  15. 自定义控件之SegmentControlView
  16. leetcode448
  17. Web前端学习笔记之离线安装npm
  18. vue全局变量定义和修改
  19. 【转载,整理】Linux性能监控
  20. PHP:第三章——PHP中返回引用的函数

热门文章

  1. [JDBC]查询结果集把字段名和字段值一起竖向输出
  2. Mosquitto配置----日志设置
  3. vs2017在前端页面使用F12无法转到js脚本函数定义
  4. Kotlin集合——Map集合
  5. flutter 页面布局 Paddiing Row Column Expanded 组件
  6. Python3基础 keyword 查看所有的关键字
  7. nginx奔溃自动重启Shell脚本
  8. 006-guava 集合-集合工具类-集合扩展工具类
  9. Android开发之高仿微信图片选择器
  10. 转 oracle healthcheck