Springboot使用Cookie,生成cookie,获取cookie信息(注解与非注解方式)

壤驷阳冰
2023-12-01

最近无意间发现好多人搬了这个简单的cookie使用文章,大家搬文章的时候,可以先跟我说一声,互相尊重下。 不过知识分享推广这个是好的!欢迎大家一起分享!

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

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

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

MyGetCookieController:

@RestController
public class MyGetCookieController {

  //......先空着-JCccc

}


//首先,想要获取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值

@RequestMapping("/testCookieValue")
public String testCookieValue(@CookieValue("sessionId") String sessionId ) {
   //前提是已经创建了或者已经存在cookie了,那么下面这个就直接把对应的key值拿出来了。
   System.out.println("testCookieValue,sessionId="+sessionId);
  
   
    return "SUCCESS";
}

上边的代码,你可以看到实际上通过注解方式去获取Cookie信息的话,是非常!简单!的!,直接@一下,然后String sessionIValue=sessionId; 就拿出来了!


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

 类似资料: