2017-10-03 2 views
0

J'ai créé un formulaire de connexion qui, comme je voulais pratiquer ajax de JQUERY. Malheureusement, ce programme m'a donné une erreur inattendue.Formulaire de soumission pour deux fois avec des valeurs nulles et m'a donné 500 erreur

  • NUMÉRO Browser me donne erreur 500: NullPointerException J'imprimé le nom d'utilisateur et mot de passe. Ensuite, j'ai vu que pour un bouton cliquez sur le nom d'utilisateur et mot de passe imprimer pour deux fois et pour la première fois ce sont les mêmes valeurs que j'ai entré et le deuxième nom d'utilisateur est Null est semblable à la valeur entrée.Autre chose est bien que j'ai commenté la partie Ajax ce second scénario se produit (nom d'utilisateur nul et l'impression de mot de passe entré)

JSP:

<form action="" style="border:1px solid #ccc" method="post"> 
<div class="container"> 
    <h2>LogIn Form</h2> 
    <label><b>Email</b></label> 
    <input type="text" placeholder="Enter Email" name="email" id="uName" required> 

    <label><b>Password</b></label> 
    <input type="password" placeholder="Enter Password" name="psw" id="psw" required> 

    <div class="clearfix"> 
     <button type="button" class="cancelbtn">Cancel</button> 
     <button type="submit" class="signupbtn" id="login">LogIn</button> 
    </div> 
    </div> 
</form> 
  • JQUERY

    <script type="text/javascript"> 
        $(document).ready(function() { 
         alert("qwqw"); 
         $('#login').click(function(){ 
          $.post('userRegistrationServlet',{ 
           uName : $('#uName').val(), 
           psw : $('#psw').val()}, 
           function(responseText) { 
            alert(uName); 
            alert("Login Successfully..!"); 
           }); 
         }); 
        }); 
    </script> 
    
  • Servlet

    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
        response.setContentType("text/html"); 
        //PrintWriter out = response.getWriter(); 
    
        String userName = request.getParameter("uName"); 
        System.out.println(userName+"uName"); 
        String psw = request.getParameter("psw"); 
        System.out.println(psw+"psw"); 
        RequestDispatcher rd; 
        if(!userName.isEmpty()| userName != null){ 
        rd = request.getRequestDispatcher("/Header.html"); 
         rd.forward(request, response); 
        }else{ 
         rd = request.getRequestDispatcher("/SignUp.jsp"); 
         rd.forward(request, response); 
        } 
    
    } 
    
    public void doGet(HttpServletRequest request, HttpServletResponse response) 
         throws IOException, ServletException{ 
        request.getRequestDispatcher("UserRegistration.jsp").forward(request,response); 
    } 
    

S'il vous plaît aidez-moi à résoudre ce issue..Thank vous ..!

Répondre

1

Je préfère mettre un gestionnaire d'événements sur le « Soumettre » cas de la forme, puis appelez preventDefault() et stopPropagation() sur l'événement:

$("#myform").on("submit", function(e) { 
    e.preventDefault(); 
    e.stopPropagation(); 
    $.post('userRegistrationServlet',{ 
      uName : $('#uName').val(), 
      psw : $('#psw').val()}, 
      function(responseText) { 
       alert(uName); 
       alert("Login Successfully..!"); 
      }); 
}); 
+0

Merci beaucoup.ces deux fonctions sont arrêtées de soumettre deux fois et mon autre faute a été détectée: J'ai changé à la fois le nom et l'identifiant avec la valeur uName pour le nom d'utilisateur. alors il ne me donne pas de valeur nulle pour le nom d'utilisateur déposé. – user2490093

0

ce type de bouton est « Soumettre » donc quand vous cliquez dessus votre formulaire sera soumis de manière cohérente mais pas de chemin d'URL Connexion

+0

est-ce la raison de mon problème? – user2490093

+0

Je pense que oui, vous pouvez essayer de changer soumettre au bouton –

+0

oui..Il est le formulaire correct soumis que pour une fois en changeant le type soumettre au bouton – user2490093