SpringMVC框架前端控制器、处理适配器和处理器映射器、视图解析器的配置
2017-01-08 21:45
344 查看
在web项目开发中使用SpringMVC框架
前面讲了SpringMVC的核心组件,下面介绍一下在实际的开发过程中这些核心组件的配置。
1、前端控制器的配置
我们使用SpringMVC框架,首先要在web项目的web.xml中配置前端控制器,其前端控制器实际为一个Servlet,
其配置方法为:
2、处理器适配器和处理器映射器的配置
在SpringMVC中根据使用注解和不使用注解将处理器适配器和处理器映射器分成了两类:
非注解的处理器适配器和处理器映射器(推荐使用)
注解的处理器适配器和处理器映射器(作为了解)
在实际的项目中配置适配器和映射器的时候,其多种适配器和处理器可以同时配置,但在使用注解的处理器映射器和适配器的时候,其必须配对出现。
2.1非注解的处理器适配器和处理器映射器的配置:
处理器适配器和处理器映射器需配置在springmvc.xml中,即在web.xml中前端控制器中配置加载的属性文件。
非注解的处理器映射器的配置
在springmvc的框架中,其提供了两类非注解的处理器映射器,分别为:
org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping
另一个映射器:
org.springframework.web.servlet.handler.SimpleUrlHandlerMapping
它们的配置形式一致,如:
多个映射器可以并存,前端控制器判断url能让哪些映射器映射,就让正确的映射器处理。
非注解的处理器适配器的配置:
同样在SpringMVC的框架中也提供了两类非注解的处理器适配器,分别为:
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter
该配置要求在编写Handler时实现 Controller接口。
org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter
该配置要求编写Handler时实现 HttpRequestHandler接口。
配置形式如下:
因为在使用非注解的处理器适配器和非注解的处理器映射器,需要在编写handler时要实现特定的接口,这导致编写的handler中只能有一种方法,即只能实现一种功能,这就导致在开发过程中需要创建很多的controller类,但在使用注解的处理器映射器和处理器适配器时,编写的controller不需要实现特定接口,故可在其中写多个方法,实现多个功能,故在开发过程中大多使用注解开发,并且其配置方式也较为简单。下面介绍注解的处理器适配器和处理器映射器:
注解的处理器适配器和处理器映射器在配置过程中需要配对出现:(同样需配置在springmvc.xml中)
在spring3.1之前使用org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping注解映射器。
在spring3.1之后使用org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping注解映射器。
在spring3.1之前使用org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter注解适配器。
在spring3.1之后使用org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter注解适配器。
使用 mvc:annotation-driven可以代替上边注解映射器和注解适配器配置
mvc:annotation-driven默认加载很多的参数绑定方法,
比如json转换解析器就默认加载了,如果使用mvc:annotation-driven不用配置上边的 RequestMappingHandlerMapping和RequestMappingHandlerAdapter
实际开发时一般使用mvc:annotation-driven
配置方法为在springmvc.xml中加入下面一句:
<mvc:annotation-driven></mvc:annotation-driven>
在编写handler时要使用@Controller标识 它是一个控制器
如下:
@Controller
public class ItemsController3 {
}
使用组件扫描器省去在spring容器配置每个controller类的繁琐。使用<context:component-scan自动扫描标记@controller的控制器类,配置如下:
<!--
扫描controller注解,多个包中间使用半角逗号分隔 -->
<context:component-scan
base-package="cn.itcast.springmvc.controller.first"/>
3.然后需要在springmvc.xml中配置视图解析器:
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
前面讲了SpringMVC的核心组件,下面介绍一下在实际的开发过程中这些核心组件的配置。
1、前端控制器的配置
我们使用SpringMVC框架,首先要在web项目的web.xml中配置前端控制器,其前端控制器实际为一个Servlet,
其配置方法为:
2、处理器适配器和处理器映射器的配置
在SpringMVC中根据使用注解和不使用注解将处理器适配器和处理器映射器分成了两类:
非注解的处理器适配器和处理器映射器(推荐使用)
注解的处理器适配器和处理器映射器(作为了解)
在实际的项目中配置适配器和映射器的时候,其多种适配器和处理器可以同时配置,但在使用注解的处理器映射器和适配器的时候,其必须配对出现。
2.1非注解的处理器适配器和处理器映射器的配置:
处理器适配器和处理器映射器需配置在springmvc.xml中,即在web.xml中前端控制器中配置加载的属性文件。
非注解的处理器映射器的配置
在springmvc的框架中,其提供了两类非注解的处理器映射器,分别为:
org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping
另一个映射器:
org.springframework.web.servlet.handler.SimpleUrlHandlerMapping
它们的配置形式一致,如:
多个映射器可以并存,前端控制器判断url能让哪些映射器映射,就让正确的映射器处理。
非注解的处理器适配器的配置:
同样在SpringMVC的框架中也提供了两类非注解的处理器适配器,分别为:
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter
该配置要求在编写Handler时实现 Controller接口。
org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter
该配置要求编写Handler时实现 HttpRequestHandler接口。
配置形式如下:
因为在使用非注解的处理器适配器和非注解的处理器映射器,需要在编写handler时要实现特定的接口,这导致编写的handler中只能有一种方法,即只能实现一种功能,这就导致在开发过程中需要创建很多的controller类,但在使用注解的处理器映射器和处理器适配器时,编写的controller不需要实现特定接口,故可在其中写多个方法,实现多个功能,故在开发过程中大多使用注解开发,并且其配置方式也较为简单。下面介绍注解的处理器适配器和处理器映射器:
注解的处理器适配器和处理器映射器在配置过程中需要配对出现:(同样需配置在springmvc.xml中)
在spring3.1之前使用org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping注解映射器。
在spring3.1之后使用org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping注解映射器。
在spring3.1之前使用org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter注解适配器。
在spring3.1之后使用org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter注解适配器。
使用 mvc:annotation-driven可以代替上边注解映射器和注解适配器配置
mvc:annotation-driven默认加载很多的参数绑定方法,
比如json转换解析器就默认加载了,如果使用mvc:annotation-driven不用配置上边的 RequestMappingHandlerMapping和RequestMappingHandlerAdapter
实际开发时一般使用mvc:annotation-driven
配置方法为在springmvc.xml中加入下面一句:
<mvc:annotation-driven></mvc:annotation-driven>
在编写handler时要使用@Controller标识 它是一个控制器
如下:
@Controller
public class ItemsController3 {
}
使用组件扫描器省去在spring容器配置每个controller类的繁琐。使用<context:component-scan自动扫描标记@controller的控制器类,配置如下:
<!--
扫描controller注解,多个包中间使用半角逗号分隔 -->
<context:component-scan
base-package="cn.itcast.springmvc.controller.first"/>
3.然后需要在springmvc.xml中配置视图解析器:
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
相关文章推荐
- SpringMVC框架前端控制器、处理适配器和处理器映射器、视图解析器的配置
- springmvc 前端控制器,映射器,适配器,视图解析器
- SpringWeb MVC处理请求的流程:(处理器映射器、处理器适配器、视图解析器称为springmvc的三大组件)
- SpringMVC入门案例及请求流程图(关于处理器或视图解析器或处理器映射器等的初步配置)
- SpringMVC入门案例及请求流程图(关于处理器或视图解析器或处理器映射器等的初步配置)
- 【SpringMVC框架】注解的处理器映射器和适配器配置
- 【SpringMVC框架】注解的处理器映射器和适配器配置
- 【SpringMVC框架】非注解的处理器映射器和适配器
- SpringMVC-控制器、映射器、视图解析器
- springMVC适配器,控制器,映射器,解析器作用
- 【SpringMVC框架】非注解的处理器映射器和适配器
- 【SpringMVC框架】非注解的处理器映射器和适配器
- SpringMvc的视图解析器与核心控制器配置以及使用Freemarker模板的配置
- 15. SpringMVC 执行定时任务,处理静态资源,配置视图解析器
- SpringMVC框架的视图解析器ViewResolver想用html不用jsp的spring-mvc.xml文件配置
- 【SpringMVC框架】小结+视图解析器配置前缀和后缀
- 【SpringMVC框架】小结+视图解析器配置前缀和后缀
- SpringMVC几个核心类(控制器核心类,加载配置文件核心类,处理url影射核心类,处理视图资源核心类,方法动态调用核心类)
- 深入剖析Spring Web源码(八) - 处理器映射,处理器适配器以及处理器的实现 - 基于简单控制器流程的实现
- 深入剖析Spring Web源码(十三) - 处理器映射,处理器适配器以及处理器的实现 - 处理器的实现架构 - 简单控制器