先 创建一个控制类吧, 其实我没有分层啊,随便做个例子:

MyGetCookieController:

@RestController

public class MyGetCookieController {


//......先空着


}



//首先,想要获取Cookie信息,那么就得先有Cookie信息,这边我们自己从头开始,先弄个Cookie吧。


@RequestMapping(value = "/setCookies",method = RequestMethod.GET)

public String setCookies(HttpServletResponse response){

//HttpServerletRequest 装请求信息类

//HttpServerletRespionse 装相应信息的类

Cookie cookie=new Cookie("sessionId","CookieTestInfo");

response.addCookie(cookie);

return "获得cookies信息成功";

}

上边,可以看到,我new了个Cookie,name是sessionId,value是CookieTestInfo; 接下来我们看看怎么取。

//非注解方式获取cookie中对应的key值


@RequestMapping(value = "/getCookies",method = RequestMethod.GET)

public String getCookies(HttpServletRequest request){

//HttpServletRequest 装请求信息类

//HttpServletRespionse 装相应信息的类

// Cookie cookie=new Cookie("sessionId","CookieTestInfo");

Cookie[] cookies = request.getCookies();

if(cookies != null){

for(Cookie cookie : cookies){

if(cookie.getName().equals("sessionId")){

return cookie.getValue();

}

}

}


return null;

}


上边注意了,看到那个循环没,这是非常有必要的! 因为这不是通过注解方式去获取Cookie中对应的key值(注解方式下边有介绍),所以得用这种方式去获取(看到里面的if没,就是通过Cookie的name:sessionId去拿值),如果执行成功,会显示在网页上的,因为这个是个@RestController。

 

//注解方式获取cookie中对应的key值,然后存入Redis里面


@RequestMapping("/testCookieValue")

public String testCookieValue(@CookieValue("sessionId") String sessionId ) {

//前提是已经创建了或者已经存在cookie了,那么下面这个就直接把对应的key值拿出来了。

System.out.println("testCookieValue,sessionId="+sessionId);



return "SUCCESS";

}

上边的代码,你可以看到实际上通过注解方式去获取Cookie信息的话,是非常!简单!的!,直接@一下,然后String sessionIValue=sessionId; 就拿出来了!  后面的几行是我存进redis数据库的东东,这里不介绍。

好了,Cookie的简单使用,就这样子吧。