1.Set Cookies
Copy the code code as follows:
Cookie cookie = new Cookie("key", "value");
cookie.setMaxAge(60);
Set a 60-second lifetime. If set to a negative value, it will be a browser process cookie (saved in memory), which will become invalid when the browser is closed.
Copy the code code as follows:
cookie.setPath("/test/test2");
Set the cookie path. If not set, it will be the current path (for Servlet, it is request.getContextPath() + the url-pattern path part of the Servlet configured in web.xml)
Copy the code code as follows:
response.addCookie(cookie);
2. Read Cookies
This method can read all Cookie objects of the current path and the "direct parent path". If there are no cookies, it will return null.
Copy the code code as follows:
Cookie[] cookies = request.getCookies();
3.Delete Cookies
Copy the code code as follows:
Cookie cookie = new Cookie("key", null);
cookie.setMaxAge(0);
Set to 0 to delete the cookie immediately
Copy the code code as follows:
cookie.setPath("/test/test2");
Delete cookies on the specified path. If the path is not set, the default is to delete cookies on the current path.
Copy the code code as follows:
response.addCookie(cookie);
4. Note: Assume that the path structure is as follows
Copy the code code as follows:
test/test2/test345/test555/test666
a. Cookies with the same key name (the values can be the same or different) can exist in different paths.
b. When deleting, if there is no cookie with the key "key" under the current path, all parent paths will be queried, and the deletion operation will be performed after retrieval (only one parent path Cookie closest to itself can be deleted at a time)
FF. You must specify the same path used to set the cookie to delete the cookie, and the path must be specified for the cookie key name regardless of uppercase, lowercase, or mixed sizes.
IE. When the key name is in lowercase, if the current path is /test/test2, if it cannot be found, then query /test, /test555, /test345, and if it is still not found, query /. (/test555/test666 is not queried)
When the key name is in mixed case or upper case, if the path is not specified, the current path will be deleted by default and no upward query will be performed.
c. When reading Cookie, only the Cookie of the direct parent path can be read.
If the current path is /test/test2, the key to be read is "key". After the current path is read, /test must also be read, and after /test is read, / must also be read.
d. When working on Java web projects, since general web servers (such as Tomcat or Jetty) use Context to manage different WebApplications, each Context has a different Path.
Be especially careful when there are multiple WebApplications in a server. Do not set a cookie with a path of /, as this may cause misoperation. (Of course, the premise is that the domain names are the same)