1.Definir cookies
Copie o código do código da seguinte forma:
Cookie cookie = new Cookie("chave", "valor");
cookie.setMaxAge(60);
Defina um tempo de vida de 60 segundos. Se definido com um valor negativo, será um cookie de processo do navegador (salvo na memória), que se tornará inválido quando o navegador for fechado.
Copie o código do código da seguinte forma:
cookie.setPath("/teste/teste2");
Defina o caminho do cookie. Se não for definido, será o caminho atual (para Servlet, é request.getContextPath() + a parte do caminho do padrão de url do Servlet configurado em web.xml)
Copie o código do código da seguinte forma:
resposta.addCookie(cookie);
2. Leia cookies
Este método pode ler todos os objetos Cookie do caminho atual e o "caminho pai direto". Se não houver cookies, ele retornará nulo.
Copie o código do código da seguinte forma:
Cookie[] cookies = request.getCookies();
3.Excluir cookies
Copie o código do código da seguinte forma:
Cookie cookie = new Cookie("chave", null);
cookie.setMaxAge(0);
Defina como 0 para excluir o cookie imediatamente
Copie o código do código da seguinte forma:
cookie.setPath("/teste/teste2");
Excluir cookies no caminho especificado Se o caminho não estiver definido, o padrão será excluir cookies no caminho atual.
Copie o código do código da seguinte forma:
resposta.addCookie(cookie);
4. Nota: Suponha que a estrutura do caminho seja a seguinte
Copie o código do código da seguinte forma:
teste/teste2/teste345/teste555/teste666
a. Cookies com o mesmo nome de chave (os valores podem ser iguais ou diferentes) podem existir em caminhos diferentes.
b. Ao excluir, se não houver nenhum cookie com a chave "chave" no caminho atual, todos os caminhos pai serão consultados e a operação de exclusão será executada após a recuperação (apenas um cookie do caminho pai mais próximo de si mesmo pode ser excluído em uma vez)
FF. Você deve especificar o mesmo caminho usado para configurar o cookie para excluí-lo e o caminho deve ser especificado para o nome da chave do cookie, independentemente de letras maiúsculas, minúsculas ou tamanhos mistos.
Ou seja, quando o nome da chave estiver em letras minúsculas, se o caminho atual for /test/test2, se não for encontrado, consulte /test, /test555, /test345 e, se ainda não for encontrado, consulte /. (/test555/test666 não é consultado)
Quando o nome da chave estiver em letras maiúsculas ou minúsculas, se o caminho não for especificado, o caminho atual será excluído por padrão e nenhuma consulta ascendente será executada.
c. Ao ler o Cookie, apenas o Cookie do caminho pai direto pode ser lido.
Se o caminho atual for /test/test2, a chave a ser lida será "key". Após a leitura do caminho atual, /test também deve ser lido e, após a leitura de /test, / também deve ser lido.
d. Ao trabalhar em projetos web Java, como servidores web gerais (como Tomcat ou Jetty) usam Contexto para gerenciar diferentes WebApplications, cada Contexto possui um Caminho diferente.
Tenha especial cuidado quando houver vários WebApplications em um servidor. Não defina um cookie com um caminho /, pois isso pode causar operação incorreta. (Claro, a premissa é que os nomes de domínio sejam iguais)