SpringMVC由浅入深day01_3非注解的处理器映射器和适配器

 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

SpringMVC由浅入深day01_3非注解的处理器映射器和适配器

测试:

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

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

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

都可以访问

SpringMVC由浅入深day01_3非注解的处理器映射器和适配器

多个映射器可以并存,前端控制器判断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接口。

SpringMVC由浅入深day01_3非注解的处理器映射器和适配器

      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接口。

SpringMVC由浅入深day01_3非注解的处理器映射器和适配器

SpringMVC由浅入深day01_3非注解的处理器映射器和适配器

SpringMVC由浅入深day01_3非注解的处理器映射器和适配器

测试:

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

可以成功访问

上一篇:[Scala] 快学Scala A2L2


下一篇:使用python发邮件