[RESOLVIDO]Login usando JSP e Oracle

Pessoal estou desenvolvendo uma aplicação simples!
gostaria de fazer um login numa pagina usando uma tabela do banco de dados, porém está dando erro não sei o que estou fazendo errado, ou a maneira que estou fazendo esta totalmente errada, alguém poderia me ajudar por favor, segue abaixo o código!

package caminho;
  
import conexao.ConnectionFactory;
import java.io.*;  
import java.net.*;  
import javax.servlet.*;  
import javax.servlet.http.*;  
import sun.misc.*;  
import java.sql.*;  
  
public class Controle extends HttpServlet {  

     protected void processRequest(HttpServletRequest request, HttpServletResponse response)  
           throws ServletException, IOException, ClassNotFoundException, SQLException {  
           response.setContentType("text/html;charset=UTF-8");  
         
          
            PrintWriter out = response.getWriter();  
            String login = request.getParameter("login");  
            String senha = request.getParameter("senha");  
        
            try{  
  
           Connection con = new ConnectionFactory().getConnection();
           PreparedStatement stmt=con.prepareStatement("select * from clientes where login=? and senha=?");  
            stmt.setString(1,login);  
            stmt.setString(2,senha);  
            ResultSet rs=stmt.executeQuery();  
            while (rs.next())  
            out.print("Acesso ok,login e senha confere");  
           
      
     }catch(Exception e){  
             e.printStackTrace();
        }  
     }
}

Aqui é o jsp


<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@page import="caminho.Controle"%>

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
         <form action="Controle" method="post">
            Login:&lt;input type="text" name="usuario"/&gt;<br/>
            Senha:&lt;input type="password" name="senha"/&gt;<br/>
            &lt;input type="submit" value="Logar"/&gt;
            
        &lt;/form&gt;
    &lt;/body&gt;
&lt;/html&gt;

Posta o erro aí.

Como está o mapeamento no seu web.xml?
A URL pattern do seu servlet é Controle?

Obs: Parece que esse tópico está duplicado, ou estou enganado?

Alguém poderia me ajudar!!

Posta ai o seu arquivo web.xml

Esse erro 404 acontece as vezes quando o servlet não foi mapeado corretamente…

Outra coisa, no lugar de Login:<input type="text" name="usuario"/><br/> troque o name=“usuario” por Login:<input type="text" name="login"/><br/> para que possa coincidir com o parâmetro que você está pegando no servlet em String login = request.getParameter("login");

Então sendo assim, verifique no debug se seu objeto con não está nulo…

deve ser isso pois é um nullPointer… da uma olhada na classe de conexão…

Fala Galera, conseguir fazer, mas agora estou com o problema de validação!!!
estou digitando o login e senha corretos mas esta dizendo que nao está correto, if acho que esta no lugar errado, alguém pode me ajudar


package meupacote;

import conexao.ConnectionFactory;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


/**
 *
 * @author dcsantos
 */
public class TrabComPost extends javax.servlet.http.HttpServlet {
    private Object loginn;
    private Object senhaa;

    public void destroy() {
        super.destroy();
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {


        PrintWriter out = response.getWriter();
        String login = request.getParameter("login");
        String senha = request.getParameter("senha");
        
        System.out.println(login);
        System.out.println(senha);

        try {

            Connection con = new ConnectionFactory().getConnection();

            java.sql.PreparedStatement stmt = null;
            try {
                stmt = con.prepareStatement("select login,senha from clientes ");
            } catch (SQLException ex) {
                Logger.getLogger(TrabComPost.class.getName()).log(Level.SEVERE, null, ex);
            }

            ResultSet rs = null;
            try {
                rs = stmt.executeQuery();
            } catch (SQLException ex) {
                Logger.getLogger(TrabComPost.class.getName()).log(Level.SEVERE, null, ex);
            }

            System.out.println(rs);
            try {
                while (rs.next()) {
                    String loginn = rs.getString("login");
                    String senhaa = rs.getString("senha");
                    
                    System.out.println(loginn);
                    System.out.println(senhaa);
                }
            } catch (SQLException ex) {
                Logger.getLogger(TrabComPost.class.getName()).log(Level.SEVERE, null, ex);
            }
                String html = "&lt;html&gt;&lt;head&gt;"
                        + "&lt;title&gt; Trabalhando com Post em Servlet&lt;/title&gt;"
                        + "&lt;/head&gt;"
                        + "&lt;body&gt;";
                if (login.equals(loginn) && senha.equals(senhaa)) {
                    html += "seja bem vindo ";
                    System.out.println(login);
                    System.out.println(loginn);
                    System.out.println(senha);
                    System.out.println(senhaa);

                } else {
                    html += "Usuario ou senha inválidos";
                }
                html += "&lt;/body&gt;&lt;/html&gt;";

                response.setContentType("text/html");
                PrintWriter writer = response.getWriter();//para dar uma resposta ao cliente
                writer.print(html);
                writer.close();

            }catch (Exception e) {
            e.printStackTrace();
        } 
        
    }
    public void init() throws ServletException {
        super.init();
    }
}

Você tentou debugar para ver se as variáveis login e loginn / senha e senhaa são iguais?

Tenta trocar

private Object loginn; private Object senhaa; por private String loginn; private String senhaa; e

String loginn = rs.getString("login"); String senhaa = rs.getString("senha"); por

String loginn = (String) rs.getString("login"); String senhaa = (String) rs.getString("senha");

Fala ai malandro, ta dando erro na validação pq no teu form vc colocou Usuario e Senha e no teu JSP esta dando um request em LOGIN e SENHA conforme o colega felipeaqueiroz falou anteriormente

Não mudou nada!!! o problema está no if!! acho

No seu console, quando você pede para imprimir o valor das variáveis em System.out.println(login); System.out.println(loginn); System.out.println(senha); System.out.println(senhaa); ele mostra o que? O seu if parece estar correto…

É seu if mesmo. As variáveis que você está comparando no if são varaiveis locais que estão dentro do while.
Tenta criar essas variaveis como variaveis de instancia…ai no while vc faz assim:

loginn = rs.getString("login")
senhaa = rs.getString("senha")

Outra coisa, não era melhor colocar tudo dentro de um try, catch só???

Já conseguir fazer galera!!!
Segue o código abaixo para quem os que tiveram muita dificuldade assim como eu!!
Se alguém souber de algo mais prático por favor coloque o código aqui blz!!!
Obrigado a todos que me ajudaram valeu mesmo!!!

Servlet

package meupacote;

import conexao.ConnectionFactory;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 *
 * @author dcsantos
 */
public class TrabComPost extends javax.servlet.http.HttpServlet {

    public static String loginn;
    public static String senhaa;

    public void destroy() {
        super.destroy();
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {


        PrintWriter out = response.getWriter();
        String login = request.getParameter("login");
        String senha = request.getParameter("senha");

        System.out.println(login);
        System.out.println(senha);

        try {

            Connection con = new ConnectionFactory().getConnection();

            java.sql.PreparedStatement stmt = null;
            try {

                //String consulta = "select login,senha from clientes where login ='"+login+"'and senha'"+senha+"'";

                stmt = con.prepareStatement("select nome,login,senha from clientes where login='" + login + "'and senha='" + senha + "'");//
                //
            } catch (SQLException ex) {
                Logger.getLogger(TrabComPost.class.getName()).log(Level.SEVERE, null, ex);
            }

            ResultSet rs = null;
            try {
                rs = stmt.executeQuery();
            } catch (SQLException ex) {
                Logger.getLogger(TrabComPost.class.getName()).log(Level.SEVERE, null, ex);
            }

            System.out.println(rs);
            try {
                while (rs.next()) {
                    String nome = rs.getString("nome");
                    String loginn = rs.getString("login");
                    String senhaa = rs.getString("senha");

                    System.out.println(loginn);
                    System.out.println(senhaa);

                    String html = "&lt;html&gt;&lt;head&gt;"
                            + "&lt;title&gt; Trabalhando com Post em Servlet&lt;/title&gt;"
                            + "&lt;/head&gt;"
                            + "&lt;body&gt;";
                    if (login.equals(loginn) && senha.equals(senhaa)) {
                        html += "seja bem vindo '" + nome + "'";
                        System.out.println(login);
                        System.out.println(loginn);
                        System.out.println(senha);
                        System.out.println(senhaa);

                    } else {
                        html += "Usuario ou senha inválidos";
                    }
                    html += "&lt;/body&gt;&lt;/html&gt;";

                    response.setContentType("text/html");
                    PrintWriter writer = response.getWriter();//para dar uma resposta ao cliente
                    writer.print(html);
                    writer.close();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public void init() throws ServletException {
        super.init();
    }
}

JSP


&lt;%@page contentType="text/html" pageEncoding="UTF-8"%&gt;
&lt;%@page language="java"%&gt;
&lt;%@page import="meupacote.TrabComPost" %&gt;
&lt;%@page import="conexao.ConnectionFactory"%&gt;
&lt;!DOCTYPE html&gt;
&lt;html&gt;
    &lt;head&gt;
        &lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&gt;
        &lt;title&gt;JSP Page&lt;/title&gt;
    &lt;/head&gt;
    &lt;body&gt;
             &lt;form action="TrabComPost" method="post"&gt;
            Login:&lt;input type="text" name="login"/&gt;<br/>
            Senha:&lt;input type="password" name="senha"/&gt;<br/>
            &lt;input type="submit" value="Logar"/&gt;
            
        &lt;/form&gt;

    &lt;/body&gt;
&lt;/html&gt;

valeu galera

Você poderia encapsular um pouco mais amigo… :wink:

tente não fazer conexão com o banco ou consultas no seu Servlet, crie um pacote e outra classe para isso :smiley:

Abraços.

é… eu acho que fiz uma gambiarra!!!
Gostaria de saber qual a melhor maneira de de fazer isso!!!
sou iniciante em java!!!
grato a todos que puderem colaborar!!!