Ir para conteúdo
Fórum Script Brasil
  • 0

Login em JSP + Servlet + conexao com MySql


csinho

Pergunta

Galera, estou fazendo um site onde estou usando JSP, Servlet e conex'ao com MySql, problema [e no momento do usuario passar os dados ~login e senha~, quero puxar do BD e retornar o login na proxima pagina e em outras. n'ao sei direito mais pesquisei bastante sobre isso e achei algo com session. Me ajudem por favor.

Aqui esta o arquivo do login.jsp

<form name="login" method="post" action="Logar">
                        <input type="text" class="text" value="Digite seu login" name="email" onfocus="this.value = '';"
                        onblur="if (this.value == '') {this.value = 'Digite seu login';}" >
                        <input type="Password" value="Password" name="senha" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Password';}">
                        <br>
                        <label id="submit"/><a><input type="submit" value="Login" /></a></label>
                        <br>
                        <h3><label id="button"/><a href="index_Cadastro.jsp">Novo cadastro</a></label></h3>
                                                <div class="clearfix"></div>
                                                </form>

 

 

Aqui esta o arquivo do logar (servlet)

 

package control;

import java.io.IOException;
import java.io.PrintWriter;
import static java.lang.System.out;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import model.Usuario;
import persistence.UsuarioController;


@WebServlet(name = "Logar", urlPatterns = {"/Logar"})
public class Logar extends HttpServlet {

    
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        try (PrintWriter out = response.getWriter()) {
          
        } finally {
            out.close();
        }
}

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
        
        String username = request.getParameter("email");
        String senha = request.getParameter("senha");
        
                   
        RequestDispatcher rd = null;
        
        Usuario user = new Usuario();
        user.setEmail(username);
        user.setSenha(senha);
        
        
        UsuarioController uc = new UsuarioController(user);
               
        try {
            if(uc.verificaUsuario())
            {
                //Caso login e senha estejam corretos...
                if(username.equals("usuario") && senha.equals("pass")){
                    
                HttpSession session = request.getSession(true);
                
                session.setAttribute("usuario",username);
                session.setAttribute("pass",senha);
                                       
                out.println("Bem vindo."+ username +"."); //Mostra na tela que foi logado com sucesso
                
                session.putValue("loginUsuario", session.getAttribute("usuario")); //Grava a session com o Login
                session.putValue("senhaUsuario", session.getAttribute("pass")); //Grava a session com a Senha
                
                //out.println("<script>document.location.href='tela_download.jsp';</script>"); //Exibe um código javascript para redireionar ao painel
                request.setAttribute("msg", username);
                request.getRequestDispatcher("tela_download.jsp").forward(request, response);
                
                }
                /*request.setAttribute("msg", usuario);
                rd=request.getRequestDispatcher("tela_download.jsp");
                rd.forward(request,response);*/
            }
            else
            {
                request.setAttribute("msg", "Usuário ou Senha inválidos");
                rd=request.getRequestDispatcher("index_login.jsp");
                rd.forward(request,response);
                
               //Se estiverem incorretos...
               // out.println("Login ou senha inválidos. <a href='java script:back()'>Voltar</a>"); //Exibe na tela e pede para voltar
            }
        } catch (Exception ex) {
            Logger.getLogger(Logar.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

@Override
        protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
            doGet(request,response);
    }

@Override
        public String getServletInfo() {
        return "Short description";
}// </editor-fold>
}

 

 

Aqui esta o arquivo do logado.jsp

 

 

 
                <%
                //Verifica se está logado
                if(session.getValue("loginUsuario") != null || session.getValue("senhaUsuario") != null){
                out.println(
                   
                %>
    </head>
    <body>
         <div class="login-cadastro">
                <nav>
                    <ul class="login-list">
                        <li><% session.getValue("loginUsuario") + %> ${msg }</li>
                        <li style="">|</li>
                        <li><% "<a href='index.jsp'>SAIR</a>;");
                            }
                            else {
                            out.println("Você não está logado no sistema.<a href='index_login.jsp'> Clique aqui para logar-se </a>");
                            }                       
                            %></li>
                    </ul
        </nav>                
            </div>

 

 

 

 

Aqui esta o arquivo do UsuarioBD ( minha conexao com BD MySql )

 


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import model.Usuario;

public class UsuarioController {
    
   
    PreparedStatement stmt;
    ResultSet rs;
    Connection con;
    
    private final String URL = "jdbc:mysql://localhost:3306/tutorial";
    private final String USER = "root";
    private final String PASS = "";
    
    
    private Usuario usuario;

    public UsuarioController(Usuario usr)
    {
        
        usuario=usr;
    }

    public boolean verificaUsuario() throws Exception{
         
        Class.forName("com.mysql.jdbc.Driver");
        con = DriverManager.getConnection(URL, USER, PASS);
        
        if(usuario.getEmail()!=null && usuario.getSenha()!=null)
        {
        try
            {
            
            
            String strsql="SELECT * FROM cadastro WHERE email = ? and senha = ?;";
            PreparedStatement stmt =  con.prepareStatement(strsql);
            stmt.setString(1, usuario.getEmail());
            stmt.setString(2, usuario.getSenha());
            ResultSet rs=stmt.executeQuery();
            if(rs.next()) //Existe o usuário no banco de dados
                {
                    rs.close();
                    stmt.close();
                    return true;
                } // Não existe o usuário
            rs.close();
            stmt.close();
            return false;
            }
            catch (SQLException e)
            {return false;}
            }
            return false;
        }

    public boolean verificaUsuario(int senha) {
        return true;
     }

    public boolean verificaUsuario(String email) {
        return true;
     }
}


Alguns codigos, coloquei o mais importante, outros coloquei tudo. Me ajudem por favor.

 

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...