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 objetosCookieobtidos na requisição. Se não houver cookies, retornanull.
Envio de cookies na resposta:
void addCookie(Cookie cookie): Adiciona o objetoCookieespecificado à 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(): Retornatruese 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(): Retornatruese 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);