我正在尝试验证用户的登录名和密码,如果没有输入登录字段,密码会在屏幕上显示一条消息"请填写登录名或密码字段"或者,如果用户输入错误的用户名或密码,则会出现"不正确的登录名或密码"屏幕消息,但它不显示消息。
为什么不在jsp页面上显示消息?
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String vazio="Por favor preencha os campos de login ou senha";
String incorretos="Login ou senha incorretos";
String login = request.getParameter("login");
String senha = request.getParameter("senha");
Cliente cli= new Cliente();
LoginDAO login2= new LoginDAO();
Cliente login_validacao=login2.validacaoLogin(login,senha);
if(login_validacao.getLogin()==null && login_validacao.getSenha()==null){
request.setAttribute("vazio", vazio);
}
else if(login_validacao.getLogin().equals(request.getParameter("login"))
& login_validacao.getSenha().equals((request.getParameter("senha")))){
RequestDispatcher rd=request.getRequestDispatcher("/index.jsp");
rd.forward(request, response);
}
else{
request.setAttribute("incorreto", incorretos);
}
}
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script src="js/jquery-1.12.0.min.js" type="text/javascript"></script>
<script src="js/jquery.maskedinput.js" type="text/javascript"></script>
<script src="js/jquery.maskedinput.min.js" type="text/javascript">
</script>
<script src="bootstrap/bootstrap.min.js" type="text/javascript">
</script>
<script src="bootstrap/bootstrap.js" type="text/javascript"></script>
<link rel="stylesheet" href="bootstrap/bootstrap.css">
<link rel="stylesheet" href="css/css.css" type="text/css">
<link rel="stylesheet" href="css/font-awesome.min.css" type="text/css"/>
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-
awesome.min.css" rel="stylesheet">
<title>JSP Page</title>
</head>
<body>
<div class="login-form">
<div class="row">
<div class="col-6 col-md-4"></div>
<div class="col-6 col-md-4">
<h2 id="AcesseConta"><span>Acesse sua Conta</span></h2>
<label for="vazio_resposta">${vazio}</label>
<label for="validacao">${incorreto}</label>
</div>
</div>
<div class="row">
<div class="col-6 col-md-4"></div>
<div class="col-6 col-md-4">
Login:<input type="text" id="login" name="login" ><br/><br/>
Senha:<input type="text" id="senha" name="senha" ><br/>
<a href="">Não é cadastrado?Cadastre-se</a><br/><br/>
</div>
</div>
<div class="row">
<div class="col-6 col-md-4"></div>
<div class="col-6 col-md-4">
<div id="teste"></div>
<button type="button" onclick="login()" >Entrar</button> <button
type="button" onclick="" >Esqueceu a Senha?</button>
</div>
</div>
</div>
</body>
</html>
答案 0 :(得分:0)
而不是使用Controller / Servlet验证HTML表单您可以在html中使用“REQUIRED”标记,如下所示。
Login:<input type="text" id="login" name="login" Required><br/><br/>
Senha:<input type="text" id="senha" name="senha" Required><br/>
在servlet上使用代码
显示JSP上的消息for Servlet
if(login_validacao.getLogin()==null && login_validacao.getSenha()==null)
{
response.sendRedirect("login.jsp?vazio=" + URLEncoder.encode(vazio, "UTF-8"));
}
else if(login_validacao.getLogin().equals(request.getParameter("login"))
& login_validacao.getSenha().equals((request.getParameter("senha"))))
{
RequestDispatcher rd=request.getRequestDispatcher("/index.jsp");
rd.forward(request, response);
}
else
{
response.sendRedirect("login.jsp?incorretos=" + URLEncoder.encode(incorretos, "UTF-8"));
}
FOR JSP
<c:if test="${!empty vazio}">
<p style="color:red;" align="center">${param.vazio}</p>
</c:if>