[RESOLVIDO] Validação Login com JavaBean + DAO + Servlet + Formulario

1 resposta
C

Minha duvida esta em como realizar a validação. No DAO? No Servlet? no JavaBean?

Pagina index.jsp (Formulario) com action para a Servlet:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<%@page import="br.com.neri.dao.LoginDAO"%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Pagina Login</title>
</head>
<body>
	<center>
      <img src="imagens/login2.jpg" alt="" />
      <p>&nbsp;</p>
      <p>&nbsp;</p>
	</center>
	<form action="autenticaUsuario" method="post">
		<p align="center">
		Usuario.:<input type="text" name="tf_usuario"/>
		Senha.:<input type="password"" name="tf_senha"/>
		</p>
		<p align="center">
		<input type="submit" value="Enviar"/>
		</p>
	</form>
</body>
</html>

Servlet AutenticaUsuarioServelt.java:

package br.com.neri.servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import br.com.neri.dao.LoginDAO;
import br.com.neri.modelo.Login;

public class AutenticaUsuarioServlet extends HttpServlet {
	
	@Override
	protected void service(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		
		PrintWriter out = response.getWriter();
		
		//busca parametro no formulario
		String usuario = request.getParameter("tf_usuario");
		String senha = request.getParameter("tf_senha");
		
		//cria instancia Login
		Login lgUsuario = new Login();
		lgUsuario.setLog_usuario(usuario);
		lgUsuario.setLog_senha(senha);
		
		//cria dao (verifica no banco)
		LoginDAO lgDao = new LoginDAO();
		lgDao.verificaLogin(lgUsuario);
		
	}

}

LoginDAO com o metodo verificaLogin

public void verificaLogin(Login login){
		
		String sqlVerifica = "select from login where log_usuario=? and log_senha=?";
		
		try {
			
			PreparedStatement stmt = connection.prepareStatement(sqlVerifica);
			ResultSet rs = stmt.executeQuery();
			
			
			
		} catch (SQLException erroSql) {
			throw new RuntimeException(erroSql);
		}
	}

JavaBean Login.java:

package br.com.neri.modelo;

public class Login {
	
	private long log_codigo;
	private String log_usuario;
	private String log_senha;
	private String log_nivelAcesso;
	
	public long getLog_codigo() {
		return log_codigo;
	}
	public void setLog_codigo(long log_codigo) {
		this.log_codigo = log_codigo;
	}
	public String getLog_usuario() {
		return log_usuario;
	}
	public void setLog_usuario(String log_usuario) {
		this.log_usuario = log_usuario;
	}
	public String getLog_senha() {
		return log_senha;
	}
	public void setLog_senha(String log_senha) {
		this.log_senha = log_senha;
	}
	public String getLog_nivelAcesso() {
		return log_nivelAcesso;
	}
	public void setLog_nivelAcesso(String log_nivelAcesso) {
		this.log_nivelAcesso = log_nivelAcesso;
	}

}

[size=18]ESTOU SEGUINDO A APOSTILA DA CAELUM FJ 21[/size]

1 Resposta

C

Parece que consegui resolver o problema. Segue abaixo o que fiz. Aceito sugestoes.

Index.jsp com formulario que possui action para o servlet:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<%@page import="br.com.neri.dao.LoginDAO"%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Pagina Login</title>
</head>
<body>
	<center>
      <img src="imagens/login2.jpg" alt="" />
      <p>&nbsp;</p>
      <p>&nbsp;</p>
	</center>
	<form action="autenticaUsuario" method="post">
		<p align="center">
		Usuario.:<input type="text" name="tf_usuario"/>
		Senha.:<input type="password"" name="tf_senha"/>
		</p>
		<p align="center">
		<input type="submit" value="Enviar"/>
		</p>
	</form>
</body>
</html>

AutenticaUsuarioServlet.java com objetos Login e LoginDAO:

package br.com.neri.servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import br.com.neri.dao.LoginDAO;
import br.com.neri.modelo.Login;

public class AutenticaUsuarioServlet extends HttpServlet {
	
	@Override
	protected void service(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		
		PrintWriter out = response.getWriter();
		
		//busca parametro no formulario
		String usuario = request.getParameter("tf_usuario");
		String senha = request.getParameter("tf_senha");
		
		//cria instancia Login
		Login lgUsuario = new Login();
		lgUsuario.setLog_usuario(usuario);
		lgUsuario.setLog_senha(senha);
		
		//cria dao (verifica no banco)
		LoginDAO lgDao = new LoginDAO();
		String status = lgDao.verificaLogin(lgUsuario); 
		
		if(status == "true"){
			response.sendRedirect("bemvindo.jsp");
		}else{
			response.sendRedirect("erro.html");
		}
	}

}

LoginDAO.java retorna valor para a servlet:

public String verificaLogin(Login login){
		
		String sqlVerifica = "select * from login where log_usuario=? and log_senha=?";
		String status = "";
		
		try {
			
			PreparedStatement stmt = connection.prepareStatement(sqlVerifica);
			stmt.setString(1, login.getLog_usuario());
			stmt.setString(2, login.getLog_senha());
			ResultSet rs = stmt.executeQuery();
			
			if(rs.next()){
				
				status = "true";
			}
			
		} catch (SQLException erroSql) {
			throw new RuntimeException(erroSql);
		}
		
		return status;
	}

Login.java sem alteraçao:

package br.com.neri.modelo;

public class Login {
	
	private long log_codigo;
	private String log_usuario;
	private String log_senha;
	private String log_nivelAcesso;
	
	public long getLog_codigo() {
		return log_codigo;
	}
	public void setLog_codigo(long log_codigo) {
		this.log_codigo = log_codigo;
	}
	public String getLog_usuario() {
		return log_usuario;
	}
	public void setLog_usuario(String log_usuario) {
		this.log_usuario = log_usuario;
	}
	public String getLog_senha() {
		return log_senha;
	}
	public void setLog_senha(String log_senha) {
		this.log_senha = log_senha;
	}
	public String getLog_nivelAcesso() {
		return log_nivelAcesso;
	}
	public void setLog_nivelAcesso(String log_nivelAcesso) {
		this.log_nivelAcesso = log_nivelAcesso;
	}

}

No web.xml:

<servlet>
  	<servlet-name>autenticaUsuario</servlet-name>
  	<servlet-class>br.com.neri.servlet.AutenticaUsuarioServlet</servlet-class>
  </servlet>
  <servlet-mapping>
  	<servlet-name>autenticaUsuario</servlet-name>
  	<url-pattern>/autenticaUsuario</url-pattern>

[size=18]Alguem pode sugerir melhoras ou se fiz o certo? Como ficaria utilizando o Hibernate?[/size]

Criado 12 de março de 2011
Ultima resposta 12 de mar. de 2011
Respostas 1
Participantes 1