最近無意間發現好多人搬了這個簡單的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的簡單使用,就這樣子吧。