Olá pessoal, estou com um problema na hora da validação de um formulário. Este formulário tem a função de trocar a senha do usuário. Quando não coloco valor nenhum ele dá erro 500 disparando a excessão IllegalStateException. Quando coloco as senhas iguais ele também dá o mesmo erro. Quando coloco os valores das senhas de forma correta o sistema me dá uma mensagem de usuário ou senhas inválidos, ou seja, o erro 2 e nem mesmo chega a executar a query. Se vcs puderem me ajudar eu agradeço!!!
este é o form da página TrocaSenha.jsp
form method=“post” action=“TrocaSenhaServlet”>Entre com seu login e senha:
Login: | |
Senha: | |
Nova senha: | |
Confirme a nova senha: | |
<%if(request.getParameter(“erro”) != null){
String erro = request.getParameter(“erro”);
if(erro.equals(“1”))
out.println(“Favor preencher todos os campos!”);
else if(erro.equals(“2”))
out.println(“Login ou senha inválidos”);
else
out.println(“A confirmação da nova senha difere da senha nova.”);
}
if(request.getParameter(“confirmacao”) != null){
out.println(“Senha atualizada com sucesso!”);
}
%>
esta é a servlet que recebe os valores do form:
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import br.com.dao.;
import br.com.dominio.;
import java.sql.*;
/**
- Servlet implementation class for Servlet: TrocaSenha
*/
public class TrocaSenhaServlet extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
static final long serialVersionUID = 1L;
public TrocaSenhaServlet() {
super();
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
if((request.getParameter("login") == null) || (request.getParameter("senha") == null) || (request.getParameter("senhaNova")== null) || (request.getParameter("senhaNova2") == null)){
response.sendRedirect("TrocaSenha.jsp?erro=1");// lembrar de colocar a flag. campo vazio.
}
String login = request.getParameter("login");
String senha = request.getParameter("senha");
String senhaNova = request.getParameter("senhaNova");
String senhaNova2 = request.getParameter("senhaNova2");
System.out.println(login + " " + senha + " " + senhaNova + " " + senhaNova2);
if(login.equals("") || senha.equals("") || senhaNova.equals("") || senhaNova2.equals("")){
System.out.println("asçklfdlddod.llldododpodf=<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<");
response.sendRedirect("TrocaSenha.jsp?erro=1");// lembrar de colocar a flag. campo vazio.
}
if(!senhaNova.equals(senhaNova2)){
response.sendRedirect("TrocaSenha.jsp?erro=3"); // novassenhas inválidas.
}
PessoaDAO pdao = new PessoaDAO();
int i = pdao.trocaSenha(login,senha,senhaNova);
if(i>0){
response.sendRedirect("TrocaSenha.jsp?confirmacao=1");
}else
response.sendRedirect("TrocaSenha.jsp?erro=2"); // senha atual ou login inválidos.
}
}
este é o método da classe PessoaDAO que faz a conexão com o banco
public int trocaSenha(String login, String senha, String novaSenha){
String query = “update userlogin set senha md5(’” + novaSenha + “’) where login = '” + login + “’ and senha = md5 (’” + senha + “’);”;
int i = 0;
try {
st = con.createStatement();
i = st.executeUpdate(query);
System.out.println(query);
// if(i>0){
// setStatus(“Senha atualizada com sucesso.”);
// }else
// setStatus(“Usuário ou senha inválido. A atualização da senha não pôde ser feita.”);
} catch (SQLException sql) {
setStatus("Um erro ocorreu. Favor relatar a seguinte mensagem ao administrador da página: "+ sql.getMessage());
}catch (Exception ex){
setStatus(ex.getMessage());
}
return i;
}
OBRIGADOO!!!