Dúvida em JSTL

5 respostas
alexandre.marques

Boa Tarde!

Amigos como eu faço para mostrar o email do usuario na tela home após ele ter entrado com seu email e senha?

primeiro eu coloco a tag no topo da pagina,

<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix="c" %>

eu queria que o e-mail do usuário aparecesse aqui,

<div id="bemvindo">Bem Vindo! <label> ${Altentic_DAO.email} </label>| 
	<a href="index.jsp">Logout</a></div>

eu preciso buscar o e-mail da classe abaixo:

package AplicBD;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import Modelo.Usuarios;

public class Altentic_DAO {

	private Connection connection;

	public Altentic_DAO(Connection connection) {
		this.connection = connection;
	}

	public boolean Autenticar(Usuarios usuarios) {
		
		boolean resultado = false;

		try {

			PreparedStatement stmt = this.connection
					.prepareStatement("select email, senha from mis_op_usuarios where email = ? and senha = ?");

			stmt.setString(1, usuarios.getemailUser());
			stmt.setString(2, usuarios.getSenhaUser());

			ResultSet rs = stmt.executeQuery();

			while (rs.next()) {
		
					rs.getString("email");
					rs.getString("senha");
					
					if (rs.getString("email").equalsIgnoreCase(usuarios.getemailUser())
							&& rs.getString("senha").equalsIgnoreCase(usuarios.getSenhaUser())) {
						
						System.out.println("Usuario Altorizado!");
						
						resultado = true;
						
				   }else{
					 
					   System.out.println("Usuario Não Altorizado!");
					   
					   resultado = false;
					   
				   }
			}

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

}

Agradeço pela atenção!

5 Respostas

caio.ribeiro.pereira

Acho q esse tipo de validação seria mais clean, se vc ao invés de retornar true ou false, retornasse o objeto ou uma string com Email existente ou Null.

Pq ai vc apenas faz um if(email != null) utiliza no JSTL.

jtiagoarruda

O retorno do seu metodo esta errado, não seu como seu objeto Usuarios, poderia ter uma variavel validação, entao retornava seu objeto com boolean validaqcao e o email.

public Usuarios Autenticar(Usuarios usuarios) {  
          
        Usuarios user = new Usuarios();  
  
        try {  
  
         PreparedStatement .....  
   
                    user.setEmail(rs.getString("email"));  
                      
                    if (rs.getString("email").equalsIgnoreCase(usuarios.getemailUser())  
                            && rs.getString("senha").equalsIgnoreCase(usuarios.getSenhaUser())) {  
                          
                        System.out.println("Usuario Altorizado!");  
                          
                        user.setValidacao(true);  
                     }

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

Ai sim você consiguira pegar no jstl.

williamdasflores

Cara da uma pesquisada em session. Seu código ficaria mais ou menos assim:

if (rs.getString("email").equalsIgnoreCase(usuarios.getemailUser()) && rs.getString("senha").equalsIgnoreCase(usuarios.getSenhaUser())) {  
 System.out.println("Usuario Altorizado!");  
 HttpSession session = request.getSession(true);
 session.setAttribute("emailUsers", usuarios.getEmailUser());
 resultado = true;  
}

Ai nas suas JSPs você recupera a session via scriplet

<% String email = request.getAttribute("emailUsers"); %>
alexandre.marques

Fala williamdasflores

[b]Eu estou usando uma servlet como controlador, e uma interface com um metodo HTTPServlet, a classe que recebo os parametros da pagina jsp, implementa o metodo da interface e passa os dados do usuario para o DAO, eu preciso arrumar uma forma de criar a sessão na classe que implemeta o metodo da interface, ou seja, o DAO verifica o usuario e devolve o mesmo, assim eu crio a sessão e uso JSTL para mostra o email na tela. Entendeu? Tem alguma ideia de como eu posso fazer isso?

Obs: Eu estou acompanhando a apostila da Caelum fj21…[/b] :oops:

Andersonrms

Acho q seria melhor o seu método autenticar retornar um objeto Usuarios (acho q seria mais intuitivo se estivesse no singular).
Sendo assim você poderia verificar no seu servlet se o Usuario retornado do método autenticar é null ou não.
Caso não seja null você criaria um nova sessão e setaria o atributo usuario nessa sessão. Tipo:

Altentic_DAO ad = new Altentic_DAO(conn);
user = ad.autenticar(user);

if (user != null) {
   HttpSession session = new request.getSession(true);
   session.setAttribute("user", user);
}

Então na jsp vc usaria expression language para mostrar o email do usuário. Tipo:

<div id="bemvindo">Bem Vindo! <label> ${user.email} </label>
Criado 10 de março de 2012
Ultima resposta 11 de mar. de 2012
Respostas 5
Participantes 5