Onde está o erro nesse Servlet do login?

9 respostas
C

Galera,
Comecei agora a me aventurar com JSP e fiquei um baita dúvida em um servlet que verifica se o login digitado é igual ao que está no banco, porém quando eu digito o login e senha correto ele sempre me redireciona par a página de erro.
Esse metodo verificaUsuario me retorna true ou false.

protected void doRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
     	
    	String login = (String) request.getAttribute("login");
    	String senha = (String)request.getAttribute("senha");
    	
    	User u = new User();
    	boolean result = u.verificaUsuario(login, senha);
    	if (result == true){
    	response.sendRedirect("logado.jsp");
    	}else{
        response.sendRedirect("ErroLogin.jsp");
    	} 	
	}
    /**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doRequest(request,response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doRequest(request,response);
	}

Alguém sabe onde está o erro, ou se me servlet está errado?

9 Respostas

FernandoFranzini

Depure o código e veja o conteúdo do usuário e senha…provavelmente não esta acontecendo oque vc acha.

C

Fernando eu fiz um teste quando eu passo direto meu usuario e senha aqui ele funciona…

boolean result = u.verificaUsuario("caio", "12345");
FernandoFranzini

Seu codigo ta certo…o erro é de runtime…vc tem q depurar para ver
Vou tentar adivinhar…
Vc ta usando

String login = (String) request.getAttribute("login"); String senha = (String)request.getAttribute("senha");
Vc tem certeza que na pagina tem algum html input com estes nomes?

C

Bom meu html está assim...

<%@ page import = "java.util.*" %>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Login...</title>
</head>
<body>
 <body>
<center>Para logar-se no sistema informe seu login e senha:</center><br /><br />
<form name="form1" method="post" action="Login">
<table width="180" border="0" align="center" cellpadding="0" cellspacing="1">
<tr> 
<td width="55">Login:</td>
<td width="122"><input name="login" type="text" id="login"></td>
</tr>
<tr> 
<td height="18">Senha:</td>
<td><input name="senha" type="password" id="senha"></td>
</tr>
<tr> 
<td colspan="1">
<input type="submit" name="Submit" value="Login">
</td>
</tr>
</table>
</form><br /> <br /> <br />
</body>
</html
FernandoFranzini

Aparentemente esta tudo ok…
Depure e veja o por que que esta dando false…outra coisa…seu if não precisa compara true…pq sua variavel já é booleana. kkk

if (result){
R

Caio,login e senha não são atributos da requisição,são parâmetros da requisição,portanto teu codigo deve ficar assim:

String login = (String) request.getParameter("login");    
String senha = (String)request.getParameter("senha");
C

raf4ever:
Caio,login e senha não são atributos da requisição,são parâmetros da requisição,portanto teu codigo deve ficar assim:

String login = (String) request.getParameter("login"); String senha = (String)request.getParameter("senha");

Pode cree cara …
Já Não sabia mais onde procurar…

Valeu Galeraa…

Sò me fala uma coisa nesse caso se o result for True ele me redireciona para outra página caso esteva incorreto vou redirecionar de novo para o login.

Como dar uma mensagem de alerta de erro se login e senha nesse caso?

FernandoFranzini

raf4ever:
Caio,login e senha não são atributos da requisição,são parâmetros da requisição,portanto teu codigo deve ficar assim:

String login = (String) request.getParameter("login"); String senha = (String)request.getParameter("senha");


Putz…verdade…desculpe eu olhei mais não percebi…

R

FernandoFranzini:
raf4ever:
Caio,login e senha não são atributos da requisição,são parâmetros da requisição,portanto teu codigo deve ficar assim:

String login = (String) request.getParameter("login"); String senha = (String)request.getParameter("senha");


Putz…verdade…desculpe eu olhei mais não percebi…

Olhou mas n viu hehehe :smiley:

E sobre a msg de erro,já há algum tempo não trabalho com JSP “puro”,mas acho q da pra fazer algo do tipo:

&lt;c:if="condicaodeErro"&gt;
  &lt;div&gt;Msg de Erro&lt;/div&gt;
&lt;/c:if&gt;
Criado 22 de setembro de 2011
Ultima resposta 22 de set. de 2011
Respostas 9
Participantes 3