Estou melhorando um projetinho que fiz para minha faculdade e me veio a ideia de melhorar a parte do login do meu site. Quando eu realizo uma tentativa de login e digito algo errado ele irá abrir uma nova aba e mostrará a mensagem “Credencias incorretas”, porém, eu gostaria que ele exibisse uma mensagem em vermelho “H1” na mesma página do login com o nome “Credencias incorretas” ao invés de abrir uma nova guia. Alguém pode me ajudar a como fazer isso ?
Classe LoginUsuarioServlet
@WebServlet("/LoginUsuarioServlet")
public class LoginUsuarioServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String email = req.getParameter("email");
String senha = req.getParameter("senha");
AutentificarLogin autentificar = new AutentificarLogin();
Usuario usuario = new Usuario();
usuario = autentificar.Autentificar(email, senha);
if (usuario != null) {
PrintWriter printWriter = resp.getWriter();
resp.sendRedirect("Locadora.jsp");
} else {
PrintWriter printWriter = resp.getWriter();
printWriter.print("<body>");
printWriter.print("<h1>Credenciais incorretas. Verifique seu E-mail e sua senha.</h1>");
printWriter.print("<a href= 'index.jsp'>Voltar</a>");
}
}
Em vez de usar PrintWriter, vc pode usar o request para fazer um forward para a própria página de login, adicionando a mensagem de erro que será apresentada:
req.setAttribute("msgErro", "Credenciais incorretas. Verifique seu E-mail e sua senha.");
req.getRequestDispatcher("/login.jsp").forward(req, res);
E na página de login:
<c:if test = "${not empty msgErro}">
<h1><c:out value = "${msgErro}"/></h1>
</c:if>
As tags c:if e c:out fazem parte do pacote de taglibs JSTL
<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c" %>
Uma coisa. O mais correto numa requisição dessa seria usar o doPost em vez do doGet. Pois vc está solicitando que ocorra uma alteração no servidor (que é a criação da sessão do usuario)
Resolvi aqui amigo, era um erro no formulário. Você foi de extrema ajuda. Outra coisa, o cadastro de um usuário, alteração e exclusão também entram no método post e não get, pois alteram o estado do servidor, correto ?