3 非注解的处理器映射器和适配器

  3.1 非注解的处理器映射器

    3.1.1 HandlerMapping处理器映射器

HandlerMapping 负责根据request请求找到对应的Handler处理器及Interceptor拦截器,将它们封装在HandlerExecutionChain 对象中给前端控制器返回。

      3.1.1.1 BeanNameUrlHandlerMapping

BeanNameUrl处理器映射器,根据请求的url与spring容器中定义的bean的name进行匹配,从而从spring容器中找到bean实例。

处理器映射器:

org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping

<!—beanName Url映射器 -->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>

      3.1.1.2 SimpleUrlHandlerMapping

simpleUrlHandlerMapping是BeanNameUrlHandlerMapping的增强版本,它可以将url和处理器bean的id进行统一映射配置。

    <!—简单url映射 -->
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/items1.action">controller的bean id</prop>
<prop key="/items2.action">controller的bean id</prop>
</props>
</property>
</bean>

另一个映射器:可以将url和handler集中配置

org.springframework.web.servlet.handler.SimpleUrlHandlerMapping

测试:

http://localhost:8080/springmvcfirst1217/queryItems.action

http://localhost:8080/springmvcfirst1217/queryItems1.action

http://localhost:8080/springmvcfirst1217/queryItems2.action

都可以访问

多个映射器可以并存,前端控制器判断url能让哪些映射器映射,就让正确的映射器处理。

  3.2 非注解的处理器适配器

    3.2.1 HandlerAdapter处理器适配器

HandlerAdapter会根据适配器接口对后端控制器进行包装(适配),包装后即可对处理器进行执行,通过扩展处理器适配器可以执行多种类型的处理器,这里使用了适配器设计模式。

      3.2.1.1 SimpleControllerHandlerAdapter

SimpleControllerHandlerAdapter简单控制器处理器适配器,所有实现了org.springframework.web.servlet.mvc.Controller 接口的Bean通过此适配器进行适配、执行。

适配器配置如下:

<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" />

org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter

要求编写的Handler实现 Controller接口。

      3.2.1.2 HttpRequestHandlerAdapter

HttpRequestHandlerAdapter,http请求处理器适配器,所有实现了org.springframework.web.HttpRequestHandler 接口的Bean通过此适配器进行适配、执行。

适配器配置如下:

<bean class="org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter"/>

org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter

要求编写的Handler实现 HttpRequestHandler接口。

测试:

http://localhost:8080/springmvcfirst1217/queryItems3.action

可以成功访问

最新文章

  1. Struts2数据校验
  2. zip压缩命令的使用
  3. hql between and 查询
  4. iOS 阶段学习第23天笔记(XML数据格式介绍)
  5. 关于Hash集合以及Java中的内存泄漏
  6. Java 周历日历
  7. SilverLight MD5加密
  8. 总结源码编译安装mysql
  9. 20160331javaweb之JSP 标签技术
  10. ASP.Net 验证视图状态 MAC 失败
  11. 什么是Node.js?带你初识Node
  12. angular中label包含input点击事件的问题
  13. (BUG记录)记一次与其他系统交互协作时造成的锁表问题
  14. Face The Right Way [POJ3276] [开关问题]
  15. Android的ViewPager的学习
  16. essential-phone的相关体验
  17. 整车CAN网络介绍
  18. iOS ipa包瘦身,iOS8及以下text段超60MB
  19. Makefile shell subst $(1)
  20. JavaSE习题 第四章 类与对象

热门文章

  1. Android开发,在Fragment中,隐藏或关闭软键盘(虚拟键盘)的方法
  2. awk mysql
  3. PCL特征点与配准(1)
  4. Servlet、Filter、Listener总结
  5. 升级ndk后Android studio的build错误
  6. R语言-查看加载包、卸除加载包及安装包与卸载包
  7. apt-get 命令加 autoclean clean autoremove 区别
  8. ASK,OOK,FSK的联系和区别
  9. Mac下安装Pyqt
  10. 性能优化系列四:Tomcat优化