Detailed explanation of cookies in java
Java's operation of cookies is relatively simple. It mainly introduces the establishment of cookies and reading cookies, as well as how to set the life cycle of cookies and the path of cookies.
Create a cookie without a life cycle, that is, a cookie that disappears when the browser is closed. The code is as follows
HttpServletRequest request HttpServletResponse response Cookie cookie = new Cookie("cookiename","cookievalue"); response.addCookie(cookie);
The following creates a cookie with a life cycle, You can set its life cycle
cookie = new Cookie("cookiename","cookievalue"); cookie.setMaxAge(3600); //设置路径,这个路径即该工程下都可以访问该cookie 如果不设置路径,那么只有设置该cookie路径及其子路径可以访问 cookie.setPath("/"); response.addCookie(cookie);
The following describes how to read cookies. The code for reading cookies is as follows
Cookie[] cookies = request.getCookies();//这样便可以获取一个cookie数组 for(Cookie cookie : cookies){ cookie.getName();// get the cookie name cookie.getValue(); // get the cookie value }
The above is the basic reading and writing Cookie operations. In practice, we'd better encapsulate it, such as adding a cookie. We focus on the name, value, and life cycle of the cookie, so we encapsulate a function and of course pass in a response object. The addCookie() code is as follows
/** * 设置cookie * @param response * @param name cookie名字 * @param value cookie值 * @param maxAge cookie生命周期 以秒为单位 */ public static void addCookie(HttpServletResponse response,String name,String value,int maxAge){ Cookie cookie = new Cookie(name,value); cookie.setPath("/"); if(maxAge>0) cookie.setMaxAge(maxAge); response.addCookie(cookie); }
When reading cookies, in order to facilitate our operation, we hope to encapsulate a function. As long as we provide the name of the cookie, we can obtain the value of the cookie. With this idea, it is easy to think of encapsulating cookies into a Map, so we perform the following encapsulation
/** * 根据名字获取cookie * @param request * @param name cookie名字 * @return */ public static Cookie getCookieByName(HttpServletRequest request,String name){ Map<String,Cookie> cookieMap = ReadCookieMap(request); if(cookieMap.containsKey(name)){ Cookie cookie = (Cookie)cookieMap.get(name); return cookie; }else{ return null; } } /** * 将cookie封装到Map里面 * @param request * @return */ private static Map<String,Cookie> ReadCookieMap(HttpServletRequest request){ Map<String,Cookie> cookieMap = new HashMap<String,Cookie>(); Cookie[] cookies = request.getCookies(); if(null!=cookies){ for(Cookie cookie : cookies){ cookieMap.put(cookie.getName(), cookie); } } return cookieMap; }
Thank you for reading, I hope it can help everyone, thank you everyone Support this site!
For more detailed explanations and simple examples of cookies in Java, please pay attention to the PHP Chinese website!