Logout utilizando Struts 2

0 respostas
andrecosta90

Estou fazendo o seguinte exercício da apostila fj 21: Faça o logout da aplicação. Crie um link no menu.jsp que invocará uma Action que removerá o usuário da sessão e redirecione a navegação para a página de login.

Quero saber se a forma que estou fazendo o logout está correta. Se não estiver correta, me expliquem como proceder.
Obrigado!

Obs.: Abaixo segue os arquivos para vcs poderem entender o esquema.

login.jsp

<html>
	<body>
		<h2>Página de Login das Tarefas</h2>
		<form action="login" method="post">Login: <input type="text"
		name="usuario.login" /> <br />
		Senha: <input type="password" name="usuario.senha" /> <br />
		<input type="submit" value="Entrar nas tarefas" /></form>
	</body>
</html>

menu.jsp

<html>
	<body>
		<h2>Página inicial da Lista de Tarefas</h2>
		<p>Bem vindo, ${usuarioLogado.login}</p>
		<a href="listaTarefas">Clique aqui</a> para acessar a lista de tarefas
		
		<br/><br/><a href="logout">Logout</a>
		</body>
</html>

LoginAction.java

package br.com.caelum.tarefas.action;

import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Result;

import com.opensymphony.xwork2.ActionContext;

import dao.UsuarioDAO;

import br.com.caelum.tarefas.modelo.Usuario;

public class LoginAction {
	
	private Usuario usuario;

	@Action(value = "login", results = {
			@Result(name = "ok", location = "/menu.jsp"),
			@Result(name = "invalido", location = "/login.jsp") })
	public String login() {
		if (new UsuarioDAO().existeUsuario(usuario)) {
			ActionContext.getContext().getSession()
					.put("usuarioLogado", usuario);
			return "ok";
		}
		return "invalido";
	}

	public Usuario getUsuario() {
		return usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}
}
LogoutAction.java
package br.com.caelum.tarefas.action;

import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Result;

import br.com.caelum.tarefas.modelo.Usuario;

import com.opensymphony.xwork2.ActionContext;

public class LogoutAction {
	
	private Usuario usuario;

	@Action(value = "logout", results = {
			@Result(name = "ok", location = "/login.jsp") })
			
	public String logout() {
		
		ActionContext.getContext().getSession().remove("usuarioLogado");

		
		return "ok";
	}

	public Usuario getUsuario() {
		return usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}

}
Criado 25 de novembro de 2010
Respostas 0
Participantes 1