2017-09-22 50 views
-1

我想驗證用戶的登錄名和密碼,如果沒有輸入登錄字段和密碼,會在屏幕上顯示一條消息「請填寫登錄名或密碼字段「,或者如果用戶輸入錯誤的用戶名或密碼,將顯示」錯誤的登錄名或密碼「屏幕消息,但它不顯示消息。我無法在JSP頁面中輸入servlet的值

爲什麼不在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

我現在問過,兄弟。 – User1999

+0

我想'

回答

0

而不是驗證使用控制器/ 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/> 

而且在JSP顯示的消息來自servlet的使用下面的代碼

對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")); 
    } 

對JSP

<c:if test="${!empty vazio}"> 
    <p style="color:red;" align="center">${param.vazio}</p> 
</c:if>