如何解析' Cookie'使用Spring标题进入`javax.servlet.http.Cookie`?

时间:2015-03-05 02:58:15

标签: java spring parsing cookies

我想将http标头的值从http请求解析为javax.servlet.http.Cookie实例。

请求中的Cookie示例:

Cookie: HSID=AYQEVnDKrdst; Domain=.foo.com; Path=/aaa; HttpOnly

spring是否提供了任何工具来轻松解析它?我不想手动解析它或涉及其他一些库

3 个答案:

答案 0 :(得分:1)

WebUtils提供了一个getCookie方法 - WebUtils.getCookie

Cookie cookieName=WebUtils.getCookie(request,this.COOKIE_NAME);
String cookieValue = cookieName.getValue();

答案 1 :(得分:1)

Spring提供@CookieValue作为处理程序方法参数的注释。它支持Cookie作为参数类型和String以及int

  

注释,指示应绑定方法参数   一个HTTP cookie。支持Servlet和中的带注释的处理程序方法   Portlet环境。

     

方法参数可以声明为类型javax.servlet.http.Cookie   或作为cookie值类型(Stringint等)。

在封面下方,它使用WebUtils#getCookie将值解析为Cookie

答案 2 :(得分:0)

您可以在控制器方法中使用注释尝试:

@CookieValue("Cookie") String cookie

然后使用Java内置的解析方法:

String[] cookieValues = StringUtils.split(cookie, ";");

或使用扫描仪:

Scanner scan = new Scanner(cookie).useDelimiter(";");
while(scan.hasNext()){
...
}