Gravar dados em uma Session

6 respostas
M

Boa noite amigos,
estou com uma dúvida, estou estudando um sistema de login, nele eu digito o email e senha, e esta logando direitinho, porem eu gostaria de guardar em algum lugar o email, cpf, id, nome do respectivo usuário para tipo, fazer um sistema de painel de controle do usuario dentro do site, entendem?

tipo americanas.com
vc faz o login, e depois pode editar os dados que esta tudo meu la.

poderiam me dar uma luz? um exemplo?

forte abraço

6 Respostas

ViniGodoy

Não existe o conceito de Session em Java Básico.
Portanto, seu tópico foi movido para desenvolvimento web.

M

Po pensei q fosse uma resposta para o tópico rs mas postei lá porque era onde estava acostumado.
Sds

M

poste suas classes de como voce esta fazendo o login

M

segue minha classe Action:

public class LoginAction extends ActionSupport implements SessionAware{
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private Dados dados;
	private String mensagemErro;
	private Map<String,Object>session;
	
	//private UsuarioWeb usuarioWeb;
	
		@Action(value="login", results = {
				@Result(name="ok", location="/index.jsp"),
				@Result(name="invalido", location="/index.jsp")
		})
		
		public String login() {
			if (new UsuarioDAO().existeUsuario(dados)) {
				@SuppressWarnings("unchecked")
				Map<String,Object> session = ActionContext.getContext().getSession();
				session.put("email", dados.getLogin().getEmail());
				session.put("dados", dados);
				session.put("nome", dados.getLogin().getNome());
				
				//ActionContext.getContext().getSession().put("usuarioLogado", usuario);
				mensagemErro = "Bem Vindo " + dados.getLogin().getEmail();
				return "ok";
			}
			mensagemErro = "Usuário ou senha inválidos";
			return "invalido";
			
		}
		
		
		@Action(value="logout", results = {
				@Result(name="logout", location="/index.jsp")
		})
		
		public String logout() {
			ActionContext.getContext().getSession().clear();
			return "logout";
			
						
		}

eu fui fazer uns testes e vi que, eu posso colocar objetos na sessão, mas esses objetos eu peguei do input, no formulário de login, o session.put(“email”, dados.getLogin().getEmail());
funciona pq eu digito o email mas o session.put(“nome”, dados.getLogin().getNome()); não.

segue a classe DAO:

public class UsuarioDAO {
	private Connection connection;

	public UsuarioDAO() {
		try {
			connection = new ConnectionFactory().getConnection();
		} catch (SQLException e) {
			throw new RuntimeException(e);
		}
	}

	public boolean existeUsuario(Dados dados) {
		try {
			PreparedStatement stmt = this.connection.prepareStatement("select * from login where email = ? and senha = ?");
			stmt.setString(1, dados.getLogin().getEmail());
			stmt.setString(2, dados.getLogin().getSenha());
			ResultSet rs = stmt.executeQuery();

			boolean encontrado = rs.next();
			rs.close();
			stmt.close();

			return encontrado;
		} catch (SQLException e) {
			throw new RuntimeException(e);
		}
	}

abraço a todos

M

eram essas classes??

M

Ninguem pra me dar uma dica???

Criado 30 de janeiro de 2012
Ultima resposta 31 de jan. de 2012
Respostas 6
Participantes 3