Hebert_Coelho 1 de out. de 2012
Oq você procurou no google? Oq vocÊ encontrou que não entendeu?
Lucas_Cavalcanti 1 de out. de 2012
fernando_n_vicente 1 de out. de 2012
OK!
fiz isso…
Cookie [] lista = request . getCookies ();
if ( lista . length == 0 ){
System . out . println ( "if..............." + lista . length );
String countryId = Long . toString ( country . getId ());
Cookie cookieCountryId = new Cookie ( "countryId" , countryId );
cookieCountryId . setMaxAge ( 60 * 60 * 24 * 360 );
response . addCookie ( cookieCountryId );
System . out . println ( "cookieCountryId.getValue(): " + cookieCountryId . getValue ());
} else {
System . out . println ( "else..............." + lista . length );
}
…mesmo zerando o cookie do meu pc, e fazendo o primeiro login, sempre lista.length = 2
a primeira vez tinha q ser 0, para gravar
Lucas_Cavalcanti 1 de out. de 2012
não é assim, vc tem que ver se tem o cookie “countryId”… o browser sempre manda cookies… e tem o cookie de sessão do usuário
fernando_n_vicente 1 de out. de 2012
OK!
Como verifico se tem cookie “countryId” ?
Lucas_Cavalcanti 1 de out. de 2012
dica: olhe dentro do Cookie
fernando_n_vicente 2 de out. de 2012
…não sei se essa é a melhor forma, mas resolveu meu problema
Cookie cookie []= request . getCookies ();
Boolean achou = false ;
for ( int i = 0 ; i < cookie . length ; i ++ ){
if ( cookie [ i ] . getName (). equals ( "countryId" )){
achou = true ;
}
}
//System.out.println("achou: "+achou);
if ( achou == false ){
//System.out.println("gravou......................... ");
String countryId = Long . toString ( country . getId ());
cookieController . saveCookie ( countryId );
}
package com.siter.site.controller ;
import javax.servlet.http.Cookie ;
import javax.servlet.http.HttpServletResponse ;
import br.com.caelum.vraptor.Resource ;
@Resource
public class CookieController {
private HttpServletResponse response ;
public CookieController ( HttpServletResponse response ) {
this . response = response ;
}
public void saveCookie ( String countryId ) {
Cookie cookieCountryId = new Cookie ( "countryId" , countryId );
cookieCountryId . setMaxAge ( 60 * 60 * 24 * 360 );
response . addCookie ( cookieCountryId );
}
}
Lucas_Cavalcanti 2 de out. de 2012
é algo nessa linha mesmo… =) não tem como deixar tão melhor
fernando_n_vicente 2 de out. de 2012
Olá,
Por acaso sabe como colocar domínio para os cookies?
É que tenho sub domínios ex:
pt.xxx.com.br
en.xxx.com.br
de.xxx.com.br
it.com.br
At,
Lucas_Cavalcanti 2 de out. de 2012
cookie.setDomain("xxx.com.br")
antes de jogar no response… daí ele vai valer pros subdominios tb
fernando_n_vicente 2 de out. de 2012
OK!
Mas uma coisa.
Quando zero os cookies do pc e compilo o projeto, da error de Caused by: java.lang.NullPointerException
Cookie cookie [] = request . getCookies ();
Boolean achou = false ;
for ( int i = 0 ; i < cookie . length ; i ++ ) { // nessa linha aparece error Caused by : java . lang . NullPointerException
if ( cookie [ i ] . getName (). equals ( "countryId" )) {
achou = true ;
}
}
Sabe como posso resolver isso?
At,
Lucas_Cavalcanti 2 de out. de 2012
Você sabe o que significa uma NullPointerException?
isso é java básico, se vc não sabe deveria estudar mais sobre isso, senão você sempre vai travar em coisas básicas.
o que pode estar null nessa linha que vc falou?