setHeader e addHeader

4 respostas
J

Pessoal,

tenho uma duvida sobre setHeader e addHeader… nao consegui entender direito isso…

eu soh posso adicionar valores padroes ao cabecalho, como por exemplo : setContentType, essas coisas???

eu tentei fazer o seguinte…

response.setHeader("nome", "fulano");
        System.out.println("Adicionei o nome");
        System.out.println("Olha o cabecalho: " + request.getHeader("nome"));
        response.addHeader("nome", "beltrano");
        System.out.println("olha de novo o cabecalho: "+ request.getHeader("nome"));

mas as duas vezes imprimiu NULL…

se eu setar qualquer valor ele nao aceita? alguem pode me explicar o real sentido do set e addHeader?

4 Respostas

A

Você só pode adicionar/setar os headers que existem, se não existe você “setHeader”, se já existe e você quer adicionar mais um então “addheader”.
Na verdade se voc der o addheader e não existir não tem problema, ele da o set pra você

Rather than setting a header outright, you can add a new header, in case a header with that name already exists. Use addHeader, addDateHeader, and addIntHeader for this. If it really matters to you whether a specific header has already been set, use containsHeader to check.

Aqui tem a tabela com os possíveis:
http://www.apl.jhu.edu/~hall/java/Servlet-Tutorial/Servlet-Tutorial-Response-Headers.html

Se você quiser definir seus próprios parâmetros então tem que usar o setAttribure() ou setParameter()

request.setAttribute("nome", "fulano"); System.out.println(request.getAttribute("nome"));

F

Você não se confundiu não? No seu código você está fazendo addHeader e setHeader no response e imprimindo getHeader no request. Uma coisa é colocar um header no request, outra é colocar no response, são objetos diferentes.

J

fkimura, eu postei essa questao porque realmente tenho duvida…tem algum exemplo ai pra eu entender melhor?

F

Eu só quis dizer que talvez você tenha se confundido, e o código correto seria:

request.setHeader("nome", "fulano");  
System.out.println("Adicionei o nome");  
System.out.println("Olha o cabecalho: " + request.getHeader("nome"));  
request.addHeader("nome", "beltrano");  
System.out.println("olha de novo o cabecalho: "+ request.getHeader("nome"));

ou

response.setHeader("nome", "fulano");  
System.out.println("Adicionei o nome");  
System.out.println("Olha o cabecalho: " + response.getHeader("nome"));  
response.addHeader("nome", "beltrano");  
System.out.println("olha de novo o cabecalho: "+ response.getHeader("nome"));

percebeu a diferença? Você estava adicionando no response e olhando no request. Voce deveria adicionar no request e olhar no request ou adicionar no response e olhar no response.
O post do Anderson pode tirar suas dúvidas.

Criado 5 de maio de 2008
Ultima resposta 5 de mai. de 2008
Respostas 4
Participantes 3