Servlet retorna nada, página em branco. (Resolvido)

Ola a todos,

Estando tendo um problema, tenho um formulário queo action é para um Servlet, nesse servlet eu faço o login e abro um sessão, porém quando eu clico em enviar ele vai pro servlet, porém, não me aparece informação alguma alguma, fica com a página em branco. Abaixo segue o código das páginas:

LOGIN.JSP

[code]<%@ include file=“cabecalho.jsp” %>
<%@ include file=“menu.jsp” %>

<h2>Login</h2>

<form action="ServletLogin" method="post">
    E-mail: </br>
    <input type="text" name="email" /></br></br>
    
    Senha: </br>
    <input type="password" name="senha" /></br></br>
    
    <input type="submit" value="Entrar" />
</form>

<%@ include file=“rodape.jsp” %>[/code]

ServletLogin

[code]package webmundo.acao;

import com.mysql.jdbc.PreparedStatement;
import java.io.IOException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import webmundo.conexao.ConexaoBd;

public class ServletLogin extends HttpServlet {

private String email, senha;
private Connection conexao;
private PreparedStatement ps;
private ResultSet rs;

public ServletLogin() throws ClassNotFoundException {
    
    this.conexao = new ConexaoBd().Conexao();
    
}

@Override
 protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
   
     email = request.getParameter("email");
     senha = request.getParameter("senha");
     
}

void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException, SQLException {
    
    
    ps = (PreparedStatement) conexao.prepareStatement("SELECT usu_email, usu_senha, usu_nome FROM Usuarios WHERE "
            + "usu_email = " + email + " AND usu_senha = " + senha);
    rs = ps.executeQuery();
    conexao.close();
    
    if(rs.next()) {
        
        HttpSession sessao = request.getSession();
        String logado = rs.getString("usu_nome");
        sessao.setAttribute("logado", logado);
        request.getRequestDispatcher("index.jsp").forward(request,response);
        
        
        }
        else {
        
            request.getRequestDispatcher("login.jsp?erro=1").forward(request,response);
            
        }
                    
    }
    
}[/code]

Alguém sabe o por que de estar ocorrendo isso?

Obrigado

Amigo implemente apenas o metodo doPost ou entao seu metodo doPost deve chamar o metodo

    @Override  
     protected void doPost(HttpServletRequest request, HttpServletResponse response)  
            throws ServletException, IOException {  
         
         email = request.getParameter("email");  
         senha = request.getParameter("senha");  
         processRequest(request, response);            
    }  

Ola Leonardo,

Obrigado pela resposta!

Fiz o que você indicou mas continua a mesma coisa. Só com o doPost ou chamando ou método processRequest.

Alguma outra idéia?

Obrigado

ele não esta gerando nenhum erro?

esse rs é um resultSet?

Se ele for resultSet como voce esta fechando a conexao e depois dando next nele?

Estava la quando estava fazendo alguns testes, mas mesmo colocando no local certo, continua ficando tudo em branco, não retorna nenhuma erro. Segue abaixo o código do Servlet como esta no momento:

[code]package webmundo.acao;

import com.mysql.jdbc.PreparedStatement;
import java.io.IOException;
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.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import webmundo.conexao.ConexaoBd;

public class ServletLogin extends HttpServlet {

private String email, senha;
private Connection conexao;
private PreparedStatement ps;
private ResultSet rs;

public ServletLogin() throws ClassNotFoundException {
    
    this.conexao = new ConexaoBd().Conexao();
    
}

@Override
 protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
   
     email = request.getParameter("email");
     senha = request.getParameter("senha");
    try {
        processRequest(request, response);
    } catch (SQLException ex) {
        Logger.getLogger(ServletLogin.class.getName()).log(Level.SEVERE, null, ex);
    }
     
}

void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException, SQLException {
    
    
    ps = (PreparedStatement) conexao.prepareStatement("SELECT usu_email, usu_senha, usu_nome FROM Usuarios WHERE "
            + "usu_email = " + email + " AND usu_senha = " + senha);
    rs = ps.executeQuery();
    
    if(rs.next()) {
        
        HttpSession sessao = request.getSession();
        String logado = rs.getString("usu_nome");
        sessao.setAttribute("logado", logado);
        request.getRequestDispatcher("index.jsp").forward(request,response);
        rs.close();
        
        }
        else {
        
            request.getRequestDispatcher("login.jsp?erro=1").forward(request,response);
            rs.close();
        }
                    
    }
    
}[/code]

Amigo faça o seguinte coloque

o codigo na ultima linha do seu metodo doPost

response.getWriter().close();

outra dica tente usar o sendRedirect do response ao invés do request

Amigo Desculpe se vou estar falando alguma besteira

sou novo ainda e to tendo um pouco de dificuldade com servlets

porém pelo q meu professor me falou quando vc vai chamar um servlets

vc usa o nome dele e no lugar de .java é .do

e vc não da referencia a nenhum deles

[quote=tvieira]

[code]<%@ include file=“cabecalho.jsp” %>
<%@ include file=“menu.jsp” %>

<h2>Login</h2>

<form action="ServletLogin" method="post">
    E-mail: </br>
    <input type="text" name="email" /></br></br>
    
    Senha: </br>
    <input type="password" name="senha" /></br></br>
    
    <input type="submit" value="Entrar" />
</form>

<%@ include file=“rodape.jsp” %>[/code]

 <form action="ServletLogin.do" method="post">

Seguinte o .do é apenas uma nomeclatura muito utilizado quando se usa Struts

a action do seu form tem que ter o nome que voce registrou seu servlet no web.xml a tag é servlet-name

[quote=leonardobhbr]Seguinte o .do é apenas uma nomeclatura muito utilizado quando se usa Struts

a action do seu form tem que ter o nome que voce registrou seu servlet no web.xml a tag é servlet-name[/quote]

blz

vlw!!!

Alguma coisa tem de errado!

O Netbeans ele não gerou um arquivo web.xml

E quando eu coloco um ponto de interrupção para debugar o servlet, não acontece nada, como se nem estivesse chamando o servlet.

Fiz as últimas dicas mas nenhuma funcionou, continua a mesma coisa.

EDIT------------------------------------------

Resolvido! Eu não estava colocando as variáveis no SQL entre aspas simples e estava dando erro.

Obrigado