Sobes.tech
Junior

Quais métodos estão previstos para trabalhar com cookies nos servlets?

sobes.tech IA

Resposta da IA

Nos servlets, são utilizados os métodos dos objetos HttpServletRequest (para obter cookies) e HttpServletResponse (para enviar cookies).

Obtenção de cookies a partir da requisição:

  • Cookie[] getCookies(): Retorna um array de objetos Cookie obtidos na requisição. Se não houver cookies, retorna null.

Envio de cookies na resposta:

  • void addCookie(Cookie cookie): Adiciona o objeto Cookie especificado à resposta.

A classe Cookie contém os seguintes métodos principais:

  • String getName(): Retorna o nome do cookie.
  • String getValue(): Retorna o valor do cookie.
  • void setValue(String newValue): Define um novo valor para o cookie.
  • String getPath(): Retorna o caminho onde o cookie está disponível.
  • void setPath(String uri): Define o caminho para o cookie.
  • String getDomain(): Retorna o domínio para o qual o cookie é válido.
  • void setDomain(String pattern): Define o domínio para o cookie.
  • int getMaxAge(): Retorna o tempo máximo de vida (em segundos) do cookie. Um valor negativo significa que o cookie existe até fechar o navegador. 0 significa remover o cookie.
  • void setMaxAge(int expiry): Define o tempo máximo de vida do cookie.
  • boolean getSecure(): Retorna true se o cookie deve ser enviado apenas por uma conexão segura (HTTPS).
  • void setSecure(boolean flag): Define a flag de conexão segura para o cookie.
  • int getVersion(): Retorna a versão do protocolo do cookie.
  • void setVersion(int v): Define a versão do protocolo do cookie.
  • boolean isHttpOnly(): Retorna true se o cookie estiver acessível apenas através de requisições HTTP (não via JavaScript).
  • void setHttpOnly(boolean isHttpOnly): Define a flag HttpOnly para o cookie.

Exemplo de obtenção e definição de cookies:

// Obtenção de cookies da requisição
Cookie[] cookies = request.getCookies();
if (cookies != null) {
    for (Cookie cookie : cookies) {
        if ("userName".equals(cookie.getName())) {
            String userName = cookie.getValue();
            // Use o valor do cookie
            break;
        }
    }
}

// Definição de um novo cookie na resposta
Cookie newCookie = new Cookie("language", "en");
newCookie.setMaxAge(60 * 60 * 24 * 30); // Duração de 30 dias
response.addCookie(newCookie);