Remover Cookie em JSP

7 respostas
J

Olá amigos da lista.

eu criei dois cookies com o seguinte codigo.

<%
     String user = request.getParameter("user");
     String pass = request.getParameter("pass");
     String cooUser = "cUser";
     String cooPass = "cPass";
     Cookie cUser = new Cookie(cooUser, user);
     Cookie cPass = new Cookie(cooPass, pass);

     cUser.setVersion(0);
     cUser.setSecure(false);
     cUser.setComment("User Empresa");

     cPass.setVersion(0);
     cPass.setSecure(false);
     cPass.setComment("Pass Empresa");

     response.addCookie(cUser);
     response.addCookie(cPass);
%>
só que infelizmente nao consegui um código que removesse esses cookies ou os invalidasse... agrdeceria se alguem me passasse algum codigo p/ deletar esse cookie ou a sessão inteira :sad:

atenciosamente...

[color="green"][size="11"]utilize a tag CODE em seus códigos, isso os deixa identados da maneira que vc codificou - matheus[/size][/color]

7 Respostas

M

bem-vindo ao Portal Java javatux, tu pode usar o método setMaxAge( int t ) do seu cookie, que recebe um inteiro representando o tempo q o cookie fica ativo, e enviando-o de volta para o cliente, por ex:

cUser.setMaxAge( 1 );
cPass.setMaxAge( 1 );

response.addCookie( cUser ); 
response.addCookie( cPass );
J

caro amigo matheus,

obrigado pela boas vindas…

a minha necessidade é de efetuar um logoof no meu sistema.
por isso a necessidade de excluir o cookie. consigo setar um novo valor p/ ele, mas gostaria de saber se existe uma forma de apagar o cookie literalmente.

atenciosamente,
javatux

M

pois então, sete o max age do cookie para 1 milessegundo, e ele será [color=“red”]excluido[/color] do sistema cliente em 1 milessegundo depois da requisição! :grin:

J

caro matheus,

muito obrigado pela ajuda. deu certo. abaixo colokei o codigo que usei para deletar os cookies
<%

Cookie[] cookies = request.getCookies();

for ( int i = 0; i < cookies.length; i++ )
{
        String name = cookies[i].getName();
        if ( name != null && name.equalsIgnoreCase("cUser") )
        {
                cookies[i].setMaxAge(0);
                response.addCookie(cookies[i]);
        }

        if ( name != null && name.equalsIgnoreCase("cPass") )
        {
                cookies[i].setMaxAge(0);
                response.addCookie(cookies[i]);
        }

}

%>
uma observação:

para este codigo dar certo, eu tive que nao colocar o path dos cookies,
pois colokando path, nao deu certo comigo,
obrigado........

atenciosamente,

javatux

F

Olá apesar do comando setMaxAge, determinar o tempo em que o cookie expira eu gostaria de saber se há um jeito de eliminar o cookie de fato pois eu utilizei o cookie.setMaxAge(0), e o cookie não está sumindo do browser após utilizá-lo;

F

Segue o trecho de codigo q eu estou modificando:

[code]

public void recuperaCookieAssinatura(){
try{

FacesContext facesContext = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest)facesContext.getExternalContext().getRequest();

HttpServletResponse response = ((HttpServletResponse) context.getExternalContext().getResponse());

//obtem a lista de cookies
Cookie[] cookies = request.getCookies();

if(logado){

for(Cookie cookie : cookies){
if(cookie.getName().equals("numero")){
numPed = cookie.getValue();
cookie.setMaxAge(0);
response.addCookie(cookie);
break;
}
}
}else{
for(Cookie cookie : cookies){
if(cookie.getName().equals("numero")){
numPed = cookie.getValue();
cookie.setMaxAge(0);
response.addCookie(cookie);
break;
}
}
}
}catch(Exception x){
x.printStackTrace();
}

}
[code]
alguem poderia ajudar??? Desde já agradeço!!!!

P

Bom Dia!
Gostaria de aproveitar o ensejo e perguntar como faço para o meu sistema JSP/jQuery/JSTL/vRaptor/TomCat não trabalhar com histórico. Para que ele sempre use os códigos do servidor atualizado. Nem sempre é possível pedir aos +/- 300 usuários que apertem CTRL+F5 (ou algo do tipo).
Obrigado pessoal

Criado 31 de julho de 2004
Ultima resposta 26 de fev. de 2013
Respostas 7
Participantes 4