Primeiro, vamos entender o que são cookies:
Na verdade, cookies são dados que existem no seu disco rígido, mas esses dados são muito especiais e só podem ser enviados ao navegador para obter ajuda de armazenamento por aplicativos da Web. Também podemos ler os biscoitos do navegador.
Os aplicativos da Web geralmente armazenam apenas algumas informações do usuário e outros dados pequenos e temporários em cookies. Se o volume de dados for grande, não será adequado para armazená -lo em cookies.
Geralmente, os navegadores dão a eles 40 cookies para armazenar dados para cada aplicativo da web, e o tamanho de cada cookie não excede 4K (ouvi dizer que alguns navegadores podem armazenar dados grandes, mas geralmente não armazenamos dados tão grandes porque a eficiência da extração de dados não é alta, o que afeta o desempenho)
Depois de dizer tanta bobagem, o ponto finalmente chegou
Java acessa os dados de cookies em solicitações de navegador através da interface HttpServletRequest (deixe -me entender toda a história dos cookies aqui, e o código será fornecido posteriormente)
Cada cookie possui dois atributos: chave e valor (nenhuma sequência de formato específica, para que você possa armazenar dados em DIY, mas deve prestar atenção aos problemas de codificação de URL. Os problemas de codificação serão discutidos em conjunto com o código posterior)
Se precisarmos armazenar novos cookies, podemos nova instância de cookie e enviá -lo ao navegador através do HTTPSERVLETROSPONSE
Aqui está uma aula comum para cookies
/ * * Esta classe pode extrair cookies da solicitação do navegador e executar operações relacionadas em cookies * */classe pública CookiesUtil estende Basecontroller {/** * Obtenha cookies pelo nome * * @param request * @param name * Nome do cookie * @return */public static cookie getcookieName (hTTStleTTeLetTeLTEst. Readcookiemap (solicitação); if (cookiemap.containsKey (nome)) {cookie cookie = (cookie) cookiemap.get (nome); Retornar Cookie; } else {return null; }} / ** * encapsulam cookies no mapa * * @param request * @return * / mapa estático privado <string, cookie> readcookiemap (httpServletRequest solicitação) {map <string, cookie> cookiemap = new hashmap <string, cookie> (); Cookie [] Cookies = request.getCookies (); if (null! = Cookies) {for (cookie: cookies) {cookiemap.put (cookie.getName (), cookie); }} retornar cookiemap; } / ** * Salvar cookies * * @param Resposta * Solicitação de servlet * @param Valor * Salvar valor * @Author jxf * / public static httpServletResponse setcookie (httpServletResponse Resposta, nome da string, valor da string, int time) {// new Cookie Object, par de key-value; // multi-aplicativo compartilhando cookie.setpath ("/"); // Se o valor do cookie contiver chinês, o cookie precisará ser codificado, caso contrário, o código distorcido será gerado. tente {urlencoder.encode (value, "utf-8"); } Catch (UnsupportEdEncodingException e) {E.PrintStackTrace (); } cookie.setMaxage (tempo); // Adicione o cookie à resposta para fazer com que ele efetiva a resposta.Addcookie (Cookie); // Depois do addCookie, se o cookie com o mesmo nome já existir, os mais recentes substituem a resposta antiga de retorno do biscoito; }Com a classe geral acima, podemos ler e criar novos cookies. Aqui, gostaria de mencionar uma coisa: se o nome do novo cookie já existir, ele não será adicionado repetidamente e o cookie anterior será substituído.
Como o navegador vê os cookies solicitados e os cookies retornados? Pegue um navegador do Google para um bobo
Então podemos precisar excluir cookies
/** * <p> Exclua biscoitos inválidos </p> * <p> inválidos? 1. Obsolete 2. Não publicado </p> * @param request * @param Resposta * @param list */ private void DELECTCOOKIEBYNAME (solicitação httpServLetRequest, httpServletResponse, string, String deLeTey) lança NullPonterException {12 mapa <string, cookie> cookiemap = readcokiMap) cookiemap.keyset ()) {if (key == DELETEKEY && key.equals (deleteKey)) {cookie cookie = cookiemap.get (chave); 21 Cookie.setMaxage (0); // Defina o tempo de validade do cookie como 0 cookie.setPath ("/"); // Não defina o caminho de armazenamento Response.addcookie (Cookie); }}}Observe que a exclusão de cookies deve ter parâmetros de tempo e caminho, caso contrário, alguns navegadores não podem excluí -los.
O exposto acima é a coleção dos dados de Java para ler e gravar em cookies do navegador. Continuaremos a adicionar informações relevantes no futuro. Obrigado pelo seu apoio a este site!