2017-09-22 5 views
-1

사용자의 로그인과 비밀번호를 검증하려고합니다. 로그인 필드를 입력하지 않으면 비밀번호가 화면에 나타납니다. " 사용자가 잘못된 사용자 이름 또는 암호를 입력하면 "잘못된 로그인 또는 암호"화면 메시지가 나타나지만 메시지는 표시되지 않습니다.서블릿의 값을 JSP 페이지에 넣을 수 없습니다.

왜 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

컨트롤러/서블릿을 사용하여 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에 메시지를 표시 서블릿

 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>