Spring MVC 之注解式控制器

Spring MVC 之注解试控制器

发展历程

1. Spring2.5之前,我们都是通过实现Controller接口或其实现来定义我们的处理器类。已经不建议使用了。

2. pring2.5引入注解式处理器支持,通过@Controller 和 @RequestMapping注解定义我们的处理器类。

并且提供了一组强大的注解

@Controller:用于标识是处理器类;

@RequestMapping:请求到处理器功能方法的映射规则;

@RequestParam:请求参数到处理器功能处理方法的方法参数上的绑定;

@ModelAttribute:请求参数到命令对象的绑定;

@SessionAttributes:用于声明session级别存储的属性,放置在处理器类上,通常列出

模型属性(如@ModelAttribute)对应的名称,则这些属性会透明的保存到session中;

@InitBinder:自定义数据绑定注册支持,用于将请求参数转换到命令对象属性的对应类型;

3. Spring3.0引入RESTful架构风格支持(通过@PathVariable注解和一些其他特性支持),且又引入了更多的注解支持:

    @CookieValue:cookie数据到处理器功能处理方法的方法参数上的绑定;

    @RequestHeader:请求头(header)数据到处理器功能处理方法的方法参数上的绑定;

    @RequestBody:请求的body体的绑定(通过HttpMessageConverter进行类型转换);

    @ResponseBody:处理器功能处理方法的返回值作为响应体(通过HttpMessageConverter进行类型转换);

    @ResponseStatus:定义处理器功能处理方法/异常处理器返回的状态码和原因;

    @ExceptionHandler:注解式声明异常处理器;

    @PathVariable:请求URI中的模板变量部分到处理器功能处理方法的方法参数上的绑定,从而支持RESTful架构风格的URI;

4. Spring3.1使用新的HandlerMapping 和 HandlerAdapter来支持@Contoller和@RequestMapping注解处理器。

      新的@Contoller和@RequestMapping注解支持类:处理器映射RequestMappingHandlerMapping和处理器适配器RequestMappingHandlerAdapter组合来代替Spring2.5开始的处理器映射DefaultAnnotationHandlerMapping和处理器适配器AnnotationMethodHandlerAdapter,提供更多的扩展点。

请求的映射分为如下几种:

      1. URL路径映射:使用URL映射请求到处理器的功能处理方法;

      2. 请求方法映射限定:如限定功能处理方法只处理GET请求;

      3. 请求参数映射限定:如限定只处理包含“abc”请求参数的请求;

      4. 请求头映射限定:如限定只处理“Accept=application/json”的请求。

记住http请求的六个部分

      1. 请求方法,如GET或POST,表示提交的方式;

      2. URL,请求的地址信息;

      3. 协议及版本;

      4. 请求头信息(包括Cookie信息);

      5. 回车换行(CRLF);

      6. 请求内容区(即请求的内容或数据),如表单提交时的参数数据、URL请求参数(?abc=123 ?后边的)等。

猜你喜欢

转载自youyu4.iteye.com/blog/2347954