Como fazer um logout de uma Sessao do Struts?

5 respostas
gilbertoag2007

[size=18]Boa noite!

Galera.

Alguem pode me ajudar com um codigo para fazer logoff de uma sessao no Struts.Ja fiz o Login e crie a sessao mas não sei como fazer o logoff para invalidar a sessao.Algum pode me ajudar.?[/size]

Segue abaixo o codigo do LoginAction do Struts.

//imports aqui

public class LoginAction extends Action {

private HttpSession sessao;

<a class="mention" href="/u/override">@Override</a>

public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)

throws Exception {
LoginForm formulario = (LoginForm) form;
	Funcionario funcionario = formulario.getFuncionario();

	FuncionarioDao dao = new FuncionarioDao();

	if (!dao.verificaMatricula(funcionario.getMatricula()) == true) {

		return mapping.findForward("erro");
	} else {

		Funcionario repasse = (Funcionario) dao.getCadastrado();
		funcionario = repasse;
		sessao = request.getSession();
		sessao.setAttribute("funcionario", funcionario);
	

		return mapping.findForward("ok");

	}

	

}

5 Respostas

ramilani12

Use session.invalidate() , matara todas as sessões …

gilbertoag2007

ramilani12

voce pode me indicar tabem onde colocar o session.invalidate() ?

Eu devo criar outra action(LogoutAction) e colocar esse codigo dentro do metodo execute ou coloco dentro do LoginAction?

Caso eu tenha que colocar dentro do LoginAction como fazer para invalidar a sessao só na hora que eu clicar em no deslogar que esta na jsp?

Obrigado pela ajuda.

ramilani12

Coloque esse seu código na sua Action e na sua JSP vc redireciona para action que seria LogoutAction

gilbertoag2007

ramilani12 ,

Deixa eu ver se entendi.

escrevi o codigo e Não apresentou nenhum erro e o LogoutAction redirecionou para a pagina que eu programei, mas eu acho que estou invalidando a sessao errada.

Eu fiz da seguinte maneira e me corrija se eu estiver errado.No codigo abaixo eu estou invalidando a sessao que eu criei na LogoutAction e não a sessao criada pelo LoginAction certo?O metodo invalidate() esta invalidando a sessao do LoginAction tambem?Caso eu estaja invalidando a sessao errada , como eu posso fazer para matar a sessao da LoginAction atravez do LogoutAction?

public class LogoutAction extends Action {

public ActionForward execute(ActionMapping mapping, ActionForm form,

HttpServletRequest request, HttpServletResponse response)

throws Exception {
HttpSession session = request.getSession();
	
	session.invalidate();
	System.out.println("Sessao invalidada");
	return mapping.findForward("deslogado");
Jair_Rillo_Junior

session.invalidate() inválida todas as sessões.

Pelo código que você postou está correto. Se ainda não funcionou, pode ser que tenha algo errado em outra parte do código (fica dificil a gente aqui analisar tudo né).
Aconselho fortamente estudar sobre Session.

Criado 7 de março de 2009
Ultima resposta 9 de mar. de 2009
Respostas 5
Participantes 3