资讯专栏INFORMATION COLUMN

3.12、@CookieValue 和 @RequestHeader

chuyao / 3596人阅读

摘要:见方法参数和类型转换一节。用映射请求头属性注解允许把一个请求头绑定到方法参数上。注意内建的类型转换支持,可以把一个用逗号隔开的字符串,转换为一个字符串或者其他类型的数组或者容器。这个注解支持和环境中的处理方法。

  这一部分的示例见这个项目的 mvc 分支下的 CookieAndHeaderController.java

① 用@CookieValue注解映射 cookie 值

  注解@CookieValue允许一个方法参数允许把一个方法参数绑定到一个 HTTP cookie 值上。我们来考虑下下面的一个从 HTTP 请求中接受到的 cookie:

JSESSIONID=415A4AC178C59DACE0B2C9CA727CDD84

  下面的代码示例演示了怎样获取 JSESSIONID cookie 的值:

    /**
     * 使用@CookieValue获取cookie值
     */
    @RequestMapping("/jSessionId")
    public String cookie(@CookieValue("JSESSIONID") String jSessionId, Model model)
    {
        model.addAttribute("sth", jSessionId);
        return "/examples/targets/test1";
    }

  如果目标方法参数不是字符串,那么就会自动进行类型转换。见“方法参数和类型转换”一节。

  这个注解支持 Servlet 和 Portlet 环境中的处理方法。

② 用@RequestHeader映射请求头属性

  注解@RequestHeader允许把一个请求头绑定到方法参数上。下面是一个请求头示例:

Host        localhost:8080
Accept       text/html,application/xhtml+xml,application/xml;q=0.9
Accept-Language  fr,en-gb;q=0.7,en;q=0.3
Accept-Encoding   gzip,deflate
Accept-Charset   ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive     300

  下面的示例演示了怎样获取请求头 Accept-Encoding 和 Keep-Alive 的值:

@RequestMapping("/displayHeaderInfo.do")
public void displayHeaderInfo(
        @RequestHeader("Accept-Encoding") String encoding,
        @RequestHeader("Keep-Alive") long keepAlive) 
{
    //...
}

  如果目标方法参数不是字符串,那么就会自动进行类型转换。见“方法参数和类型转换”一节。

  当注解@RequestHeader用在一个MapMultiValueMap或者HttpHeaders参数上的时候,这个 map 就是收集所有请求头的值。

  注意:内建的类型转换支持,可以把一个用逗号隔开的字符串,转换为一个字符串或者其他类型的数组或者容器(collection)。例如,一个带有@RequestHeader("Accept")的方法参数可以是一个字符串,也可以是一个String[]或者List

  这个注解支持 Servlet 和 Portlet 环境中的处理方法。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/66061.html

相关文章

  • SpringMVC之Controller常用注解功能全解析

    摘要:分发处理器将会扫描使用了该注解的类的方法,并检测该方法是否使用了注解。这种绝对路径和相对路径所组合成的最终路径都是相对于根路径而言的。属性属性主要是用于限制能够访问的方法类型的。属性的用法和功能与属性相似。使用标记的参数。 一、简介 在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封...

    wanghui 评论0 收藏0
  • spring-mvc注解

    摘要:关键注解的关键注解主要有其中主要是用于标记该类是一个控制器,用于指示的哪一个类或方法来处理请求动作,即用于标识具体的处理器。默认已经装配了作为组件的实现类,而由使用,将请求信息转换为对象。 关键注解 springmvc的关键注解主要有@Controller/@RequestMapping/@RequestParam/@PathVariable/@RequestHeader/@Cooki...

    EdwardUp 评论0 收藏0
  • springmvc常用注解标签详解

    摘要:分发处理器将会扫描使用了该注解的类的方法,并检测该方法是否使用了注解。作用该注解用于将的方法返回的对象,通过适当的转换为指定格式后,写入到对象的数据区。用于注解层,在类上面注解。使用标记的参数。 1、@Controller 在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个M...

    notebin 评论0 收藏0
  • Spring Boot QuickStart (3) - Web & Restful

    摘要:不过可以切换到版本,兼容性未知。注解一旦添加了依赖会判断这是一个应用,并启动一个内嵌的容器默认是用于处理请求。注意中空字符串与的区别。 环境:Spring Boot 1.5.4 基于 Spring Boot 可以快速创建一个Web & Restful 应用,在开始应用之前,至少要了解以下用法: 定义路由,定义 HTTP 方法 获取Header、GET、POST、路径等参数 Cooki...

    chnmagnus 评论0 收藏0
  • SpringMVC入门笔记

    摘要:简介注解用于修饰的方法,根据的的内容,通过适当的转换为客户端需要格式的数据并且写入到的数据区,从而不通过视图解析器直接将数据响应给客户端。并且这些解析器都实现了接口,在接口中有四个最为主要的接口方法。 SpringMVC 细节方面的东西很多,所以在这里做一篇简单的 SpringMVC 的笔记记录,方便以后查看。 Spring MVC是当前最优秀的MVC框架,自从Spring 2.5版本...

    gekylin 评论0 收藏0

发表评论

0条评论

chuyao

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<