做了个简简单单的小例子去记录一下,怎么使用这个Cookie,虽然现在用了shiro去管控登录,里面用的是token,但是说不定以后得用上这个。

废话不多说,开始上! 代!码!

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

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 ) {
System.out.println("testCookieValue,sessionId="+sessionId);
//前提是已经set了或者已经存在cookie了,那么下面这个就直接把对应的key值拿出来了。 String sessionIValue=sessionId;
//以下是关于存储cookie信息进redis里面 redisTemplate.opsForValue().set("sessionId",
sessionIValue, 60, TimeUnit.SECONDS);
System.out.println("取值:"+redisTemplate.boundValueOps("sessionId").get());
return "SUCCESS"; }
上边的代码,你可以看到实际上通过注解方式去获取Cookie信息的话,是非常!简单!的!,直接@一下,然后String
sessionIValue=sessionId; 就拿出来了!  后面的几行是我存进redis数据库的东东,这里不介绍。


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