繁体   English   中英

如何使用Spring将'Cookie'标头解析为`javax.servlet.http.Cookie`?

[英]How to parse the 'Cookie' header into `javax.servlet.http.Cookie` with Spring?

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

例如,请求中的Cookie

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

spring是否提供任何实用程序来轻松解析它? 我不想手动解析它或涉及其他一些库

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

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

Spring提供@CookieValue作为处理程序方法参数的注释。 它既支持Cookie作为参数类型,也支持Stringint

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

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

WebUtils#getCookie ,它使用WebUtils#getCookie将值解析为Cookie

您可以在Controller方法中使用Annotation尝试:

@CookieValue("Cookie") String cookie

然后使用内置的Java parse方法:

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

或使用扫描仪:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM