Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Help Login Ajax

  1. #1

    Help Login Ajax

    Salve a tutti.

    Sono alle prime armi e prove con Ajax. Volevo realizzare un login sfruttando Ajax per l'invio di dati a una servlet che si occupa di validare il tutto. Nelle mie intenzioni, se il login avviene correttamente la servlet dovrebbe rimandare a una pagina jsp, mentre se errato, voglio far comparire una scritta di errore direttamente nella pagina della login senza effettuare nessun caricamento. Ho provato a buttare giù un pò di codice giusto per fare due prove, però il la servlet mi fa comparire il messaggio di errore in un'altra pagina.

    Ecco il codice per chi volesse darmi qualche dritta:
    codice:
    <%@page contentType="text/html" pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>JSP Page</title>
    
            <script type="text/javascript">
                function getObject(){
                    if (window.XMLHttpRequest){
                        http_request=new XMLHttpRequest();
                    }else if (window.ActiveXObject){
                        http_request=new ActiveXObject("Microsoft.XMLHTTP");
                    }
                    return http_request;
                }
            
                var http_request=new getObject();
            
                function loginValidator(){
                    if (http_request){
                        var username=document.getElementById("username");
                        var password=document.getElementById("password");
                        http_request.open("POST","LoginController",true);
                        http_request.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
                        http_request.onreadystatechange=handle();
                        http_request.send('username='+username.value +'&password='+password);
                    }
           
                }
                function handle(){
                    if (http_request.readyState==4){
                        var risposta=request.responseText;
                        document.loginForm.message.innerHTML=risposta;
                    }
                }
            </script>
        </head>
    
        <body>
    
    
    
            <form name="loginForm" method="POST" action="LoginController">
                <input type="text" name="username" id="username"/>
                <input type="password" name="password" id="password"/>
                <input type="submit" value="login" onclick="loginValidator()"/>
                <div id="message"></div>
            </form>
        </body>
    </html>
    E questa è la Servlet:
    codice:
    public class LoginController extends HttpServlet {
    
        
        @Override
        protected void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            response.setContentType("text/html");
            String username = request.getParameter("username");
            String password = request.getParameter("password");
    
            if ("rocco".equals(username) && "oliveto".equals(password) ) {
               response.sendRedirect("loginOk.jsp");
                
            } else {
                //response.setContentType("text/html");
                PrintWriter out = response.getWriter();
                out.println("DATI ERRATI RIPROVA!!");
                out.close();
            }
        }
    
        
        @Override
        protected void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            doGet(request, response);
        }
    Un grazie a chiunque abbia un consiglio. Bye

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    Devi scegliere o fai il submit o gestisci l'onclick

    submit: levi l'onclick e gestisci tutto nell'onsubmit
    click: cambia il bottone da type submit a type button

  3. #3
    Ti ringrazio. Ho tolto il submit e trasformato il tutto in un semplice button che gestisce l'onClick;
    Il problema è che funziona correttamente facendo il redirect verso la pagina jsp quando il login è corretto, però continua a non aggiornarmi la pagina col messaggio di errore quando il login è errato (mi apre una nuova pagina con la scritta di errore).

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    l'unico altro errore che noto è questo:

    http_request.onreadystatechange=handle();

    vanno tolte le 2 parentesi tonde

    http_request.onreadystatechange=handle;

    Prova facendo questa modifica, anche perche per il resto mi sembra tutto a posto.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.