Problemas com os cookies

3 respostas
M

É o seguinte galera. Eu comecei a programar a pouco tempo em jsp. E fiz um site onde era preciso q o usuário logasse (se é assim q se escreve) para ter alguns serviços. Fiz isso usando cookies. Porém um dia vagando pelos tópicos deste forum, encontrei várias pessoas dizendo q era melhor usar as sessions do que o cookies, devido o ultimo poder estar desativado no computador do usuário. Gostaria q alguém podesse me esclarecer como funciona a gravação em sessions, de preferencia com o código. Muito obrigado pela atenção

Ahhhh, outra coisa. Tive problemas com o logoff do usuário. Como eu faria isso utilizando as sessions

Valeuu

3 Respostas

zirocool

As sessoes funcionam basicamente como cookies, só que ao invés do server te enviar cookies com os dados pra ti recuperar no cliente, ele te envia somente um contendo um id, pra ser recuperado os dados no server.

Basicamente é isso, a sessão grava os dados que tu vai recuperar posteriomente no servidor, que é identificada por uma id gerada pelo próprio server.

Se os cookies tiverem bloqueados no cliente, então o servidor aciona um mecanismo de reescrita de URL, passando o id da sessao via URL.

Dá um tempo aí que eu vou achar um exemplo disso tudo…

M

Sessão é como se fosse um lugar pra vc guardar informações do usuário, então quando for autenticar um usuário vc grava um atributo falando que ele foi autenticado, quando for entrar em uma pagina que necessita de autenticação vc verifica por esse atributo na sessão se ele existir significa que o usuário está autenticado, se ele não existir não está.
pra usar session dentro de jsp vc tem duas opções: propriedade getSession na request ou o propio objeto session que é um atalho praquela propriedade ali…

//isso HttpSession session = request.getSession(); //ou se estiver dentro de uma jsp usa o objeto session direto <% session.getAttribute(); %>

Você devia fazer algo do tipo antes só que com cookies… quando o usuário autenticava vc ia lá e adicionava um cookie pra response, para autenticar o usuario agora vc adiciona a “autenticação” dele no objeto session e pode adicionar junto informações com um bean.

//logica para verificar se a senha e o usuario estao corretos
session.setAttribute("cliente", clienteBean);

dae quando for verificar se o usuario esta autenticado vc pega e dá um getAttribute

ClienteBean bean = (ClienteBean)session.getAttribute("cliente"); if(bean == null) //cliente não autenticado //encaminha pra tela de login request.getRequestDispatcher("/login").forward(request, response);

para fazer logoff do usuario é só invalidar a sessão.

session.invalidate();

usndo cookies para invalidar o mesmo vc deve setar o seu expire date para algo já passado, supondo que vc gravou um cookie de nome cliente então temos o seguinte:

Cookie[] cookies = request.getCookies(); for(int i = 0; i < cookies.length; i++){ if(cookies[i].getName().equals("cliente")){ cookies[i].setMaxAge(0); response.addCookie(cookies[i]); } }

M

Porra bicho valeuu cara … muito obrigado mesmo ! ! !

Criado 20 de novembro de 2007
Ultima resposta 21 de nov. de 2007
Respostas 3
Participantes 3