3
respostas

Palavra reservada? Ou chave com caracter especial.

Bom dia amigos,

Durante os exercícios de Servlet com relação a cookie, fui adicionar meu usuário logado a um cookie e coloquei a chave usuário-logado, isso me gerou uma IllegalArgumentException, dizendo que usuário-logado é uma palavra reservada! Como a palavra não é em inglês já imaginei que não seria a palavra em si e sim o acento. Retirei e funcionou.

A dúvida é essa: realmente não pode usar acentos/caracteres especiais na chave e um cookie? Quem é responsável pelas regras do cookie? Seria a W3C (pois procurei no site deles e no Google, e não encontrei informações sobre isso).

Segue a Exception que tive:

HTTP Status 500 ? Internal Server Error


Type Exception Report

Message Cookie name [usuário-logado] is a reserved token

Description The server encountered an unexpected condition that prevented it from fulfilling the request.

Exception

java.lang.IllegalArgumentException: Cookie name [usuário-logado] is a reserved token
    javax.servlet.http.CookieNameValidator.validate(Cookie.java:405)
    javax.servlet.http.Cookie.<init>(Cookie.java:119)
    br.com.alura.gerenciador.web.Login.doPost(Login.java:34)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    br.com.alura.gerenciador.web.FiltroDeAuditoria.doFilter(FiltroDeAuditoria.java:26)

Note The full stack trace of the root cause is available in the server logs.


Apache Tomcat/8.5.24

3 respostas

Bom dia Andre, meu chute é que o name do Cookie não pode ter o " - ". Tenta usuario.logado ou usuario_logado

Acontece em qualquer navegador?

Acho que não seria o "-" (hífen) pois eu tirei o acento e ele funcionou "usuario-logado".

O que gostaria mesmo era saber onde consigo encontrar as normas desse campo. Mais por curiosidade mesmo...