Ciao a tutti! Sto lavorando su due pagine JSP. In particolare una che contiene un modulo di registrazione, in cui vengono inseriti dei parametri e inviati ad una servlet Controller, la quale esegue un'operazione sul database. Questo č il problema.
In questa JSP inserisco i campi per la registrazione in un form che invoca una funzione javascript in cui uso AJAX. Vorrei inviare i dati al controller e lo faccio via url tramite post, ma qualcosa non va. Infatti nel database se vengono inseriti dati spunta una strana voce "objectHTMLInputElement". Suppongo sbaglio a passare i parametri "nome,cognome,username,password". Ecco il codice:
codice:<%@page contentType="text/html" pageEncoding="UTF-8"%><!DOCTYPE html> <html> <head> <link href="stile2.css" rel="stylesheet" type="text/css"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> <script type="text/javascript" src="./js/site.js"></script> <title>JSP Page</title> </head> <body> <script type="text/javascript"> function setXMLHttpRequest(){ var xhr=null; if(window.XMLHttpRequest){ xhr = new XMLHttpRequest(); }else if(window.ActiveXObject){ xhr = new ActiveXObject("MicrosoftXMLHTTP"); } return xhr; } var xhrObj = setXMLHttpRequest(); function registraUtente(){ //RECUPERO DEI PARAMETRI //ESECUZIONE DELLA CHIAMATA AJAX /* var nome = $("#nome").val(); var cognome = $("#cognome").val(); var username = $("#username").val(); var password = $("#password").val(); / // $.ajax( // { // type: 'POST', // url: 'inserisciutente.jsp', // data: "nome=" + nome + "&cognome=" + cognome + "&username=" + username + "&password=" +password, /* complete: function Ok(data){ //SE CI SONO ERRORI MOSTRO L'ERRORE ALTRIMENTI UN MESSAGGIO DI CONFERMA // alert("Registrazione avvenuta con successo!"); $('#risultato').load('CIAO'); }, fail: function Errore(){ alert("Errore nella registrazione!!!"); }*/ // }); var nome=document.getElementById("nome"); var cognome=document.getElementById("cognome"); var username=document.getElementById("username"); var password=document.getElementById("password"); /*var url ="Controller?state=registraUtente&nome="+document.getElementById("nome")+ "&cognome="+document.getElementById("cognome")+ "&username="+document.getElementById("username")+ "&password="+document.getElementById("password")+""; */ var url ="Controller?state=registraUtente&nome="+nome+"&cognome="+cognome+"&username="+username+"&password="+password+""; xhrObj.open("GET",url,true); xhrObj.onreadystatechange=updatePage; xhrObj.send(null); } //funzione che modifica l'html desiderato function updatePage(){ if(xhrObj.readyState == 4){ var risp = xhrObj.responseText; document.getElementById("risultato").innerHTML=risp; } } </script> <article> <h3>Registrati</h3> <form class="registrazione" action="javascript:registraUtente()" method="post"> <fieldset> <p> <label for="nome">Nome</label> <input type="text" id="nome" name="nome" placeholder="es. Mario" required value="" /> </p> <p> <label for="cognome">Cognome</label> <input type="text" id="cognome" name="cognome" placeholder="es. Rossi" required value="" /> </p> <p> <label for="username">Username</label> <input type="text" id="username" name="username" placeholder="es. mrossi82" required value="" /> </p> <p> <label for="password">Password</label> <input type="password" id="password" name="password" placeholder="es. Ab0123" required value="" /> </p> <p class="bottone"> <button class="bottone-invia" type="submit" >Invia</button> </p> </fieldset> </form> <div id="risultato"> </div> </article> </body> </html>
E qui la sezione interessata del controller:
La chiamata AJAX sembra funzionare correttamente, perņ nel database compare quella voce che vi ho indicato sopra. Cosa non va secondo voi?codice:else if("registraUtente".equals(request.getParameter("state"))){ PrintWriter writer = response.getWriter(); String nome=request.getParameter("nome"); String cognome=request.getParameter("cognome"); String username=request.getParameter("username"); String pwd=request.getParameter("password"); boolean ris=c.addUser(nome, cognome, username, pwd, "user"); if(ris){ writer.print("Utente inserito correttamente!!!"); } else{ writer.print("Errore!\nInserisci un username differente!"); } }

Rispondi quotando