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

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

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

[code]<?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”%>

Pagina Login

 

 

Usuario.: Senha.:

[/code]

Servlet AutenticaUsuarioServelt.java:

[code]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);
	
}

}[/code]

LoginDAO com o metodo verificaLogin

[code]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);
	}
}[/code]

JavaBean Login.java:

[code]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;
}

}[/code]

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

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

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

[code]<?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”%>

Pagina Login

 

 

Usuario.: Senha.:

[/code]

AutenticaUsuarioServlet.java com objetos Login e LoginDAO:

[code]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");
	}
}

}[/code]

LoginDAO.java retorna valor para a servlet:

[code]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;
}[/code]

Login.java sem alteraçao:

[code]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;
}

}[/code]

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]