我想将http请求中的cookie头的值解析为javax.servlet.http.Cookie
实例。
例如,请求中的Cookie
:
Cookie: HSID=AYQEVnDKrdst; Domain=.foo.com; Path=/aaa; HttpOnly
spring是否提供了一些实用工具来轻松解析它?我不想手动解析它,也不想涉及其他一些库
Spring提供@CookieValue
作为处理程序方法参数的注释。它既支持Cookie
作为参数类型,也支持String
和int
。
指示方法参数应绑定到的注释HTTP cookie。Servlet和中的注释处理程序方法支持Portlet环境。
方法参数可以声明为类型
javax.servlet.http.Cookie
或者作为cookie值类型(String
、int
等)。
在封面下面,它使用WebUtils#getCookie
将值解析为Cookie
。
WebUtils提供了一个getCookie方法-WebUtils.getCookie
Cookie cookieName=WebUtils.getCookie(request,this.COOKIE_NAME);
String cookieValue = cookieName.getValue();
您可以在控制器方法中使用Annotation进行尝试
@CookieValue("Cookie") String cookie
然后使用Java内置的解析方法:
String[] cookieValues = StringUtils.split(cookie, ";");
或带有扫描仪:
Scanner scan = new Scanner(cookie).useDelimiter(";");
while(scan.hasNext()){
...
}