@CookieValue如何使用?

liangtu 2013-11-25 04:15:14
org.springframework.web.bind.annotation.annotationannotation.CookieValue

查看http://docs.spring.io/spring/docs/3.2.x/spring-framework-reference/html/mvc.html,看到@CookieValue的举例,准备学习该注解

@RequestMapping("/displayHeaderInfo.do")
public void displayHeaderInfo(@CookieValue("JSESSIONID") String cookie) {
//...
}

先按照如下代码增加了一个写了个cookie,然后配置hosts

String name = "test-test";
String value = "vvvaaa";
Cookie cookie = new Cookie(name,value);
cookie.setComment("cccmmm");
cookie.setDomain("test.com");
cookie.setMaxAge(3601);
response.addCookie(cookie);

C:\Documents and Settings\Administrator\Local Settings\Temporary Internet Files中也看到cookie的文件了,
但是按照如下代码始终不能读取到cookie

@RequestMapping(value = "/testOne", method = RequestMethod.GET)
public String testOne(@CookieValue(value = "JSESSIONID", defaultValue = "") String cookieStr,HttpServletRequest request)
{
System.out.println("cookieStr = " + cookieStr);
return null;
}

@RequestMapping(value = "/testTwo", method = RequestMethod.GET)
public String testTwo(@CookieValue(value = "JSESSIONID", defaultValue = "") Cookie sessionId)
{
System.out.println("name = " + sessionId.getName() + " , domain = " + sessionId.getDomain() + " , value = " +sessionId.getValue());
return null;
}



但是用最原始的方式读取cookie却能得到数据

Cookie[] cookies = request.getCookies();
for(Cookie cookie : cookies)
{
System.out.println("name = "+cookie.getName()+",domain = "+cookie.getDomain()+",value="+cookie.getValue());
}


问题:@CookieValue到底该怎么用,才能读取到cookie?
...全文
760 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_28768509 2015-06-05
  • 打赏
  • 举报
回复
@CookieValue(value = "test-test", defaultValue = "123"
  • 打赏
  • 举报
回复
话又说来了,都有HttpServletRequest request了,没必要去用@cookievalue了。这个很不常用
  • 打赏
  • 举报
回复
@RequestMapping(value = "/testOne", method = RequestMethod.GET) public String testOne(@CookieValue(value = "JSESSIONID", defaultValue = "123") String cookieStr,HttpServletRequest request) { System.out.println("cookieStr = " + cookieStr); return null; } 你可以赋个初始值看下,应该会打印,就说明已经赋值给cookieStr了。那就是JSESSIONID不存在的问题了
liangtu 2013-11-28
  • 打赏
  • 举报
回复
引用 3 楼 fangmingshijie 的回复:
@CookieValue用于将请求的Cookie数据绑定到你指定的参数上。测试的话,只能再web下,必须要有容器才行,比如tomcat等。这个我测试过,是可以的。
我是在web项目中试的,但是得到不到想要的结果。
  • 打赏
  • 举报
回复
@CookieValue用于将请求的Cookie数据绑定到你指定的参数上。测试的话,只能再web下,必须要有容器才行,比如tomcat等。这个我测试过,是可以的。

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧