Communication entre une servlet jee et javascript
Bonjour, je suis novice en javascript/ajax et je souhaite effectuer un controle de "disponibilité" d'un nom dans une base de donnée via un formulaire (jsp) et une servlet. J'aimerai que cette vérification se fasse sans rafraichissement de la page et du coup j'ai utilisé ajax. Le controle du pseudo dans la BD fonctionne mais je ne sais pas comment renvoyer la réponse de la servlet vers la jsp. Est ce que quelqu'un peut m'aider? Merki^^.
voici un extrait du code du formulaire:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| <script type="text/javascript" src="http://code.jquery.com/jquery-1.4.4.min.js"></script>
</head>
<style>
table {margin: 0 auto;}
</style>
<body>
<h1>Créer une nouvelle campagne</h1>
<form action='Interface1Renvoi' method='POST' onsubmit="return (ValiderMail(this) && ValiderChampsFormulaire(this))">
<table width="475" border="0">
....
<tr>
<th width="25%" >
</th>
<th width="75%" align="left">
<h2>Nom de l'expéditeur :</h2>
<input type='text' name='NomExpediteur' id='NomExpediteur' size='60'/><br>
<span id="msgbox" style="display:none"></span>
</th>
</tr>
... |
voici le code javascript :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| $('#NomExpediteur').blur(function ()
{
$('#msgbox').removeClass().addClass('messagebox').text('Vérification...').fadeIn('slow');
$.post('VerificationNom', {
NomExpediteur: $(this).val()
}, function (reponse)
{
if (reponse == 'non')
{
$('#msgbox').fadeTo(200, 0.1, function ()
{
$(this).jsp('Ce nom existe déjà').addClass('busy').fadeTo(900, 1);
});
}
else
{
$('#msgbox').fadeTo(200, 0.1, function ()
{
$(this).jsp('Ce pseudo est libre').addClass('dispo').fadeTo(900, 1);
});
}
});
}); |
et le code post de ma servlet:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
| protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
String nom=request.getParameter("NomExpediteur");
Connection connexion = null;
try {
// chargement du driver
Class.forName( "com.mysql.jdbc.Driver" );
...
// connexion à la BDD
connexion = DriverManager.getConnection(url, utilisateur, motDePasse);
// recherche du nom
Statement statement = connexion.createStatement();
String requete = "SELECT count(*) as res FROM LISTENOMMAIL WHERE Nom= '" + nom + "' ;";
ResultSet recherche = statement.executeQuery(requete);
int res=0;
while(recherche.next()){
res= recherche.getInt("res");
}
//renvoi de la reponse vers la jsp
response.setContentType("text/xml");
if (res==0)
{
System.out.println("non");
response.getWriter().write("non");
} else
{
System.out.println("oui");
response.getWriter().write("oui");
}
connexion.close();
}
catch ( ClassNotFoundException e ) {
/* Gérer les éventuelles erreurs ici. */
System.out.println("erreur classe");
}
catch ( SQLException e ) {
/* Gérer les éventuelles erreurs ici */
System.out.println("erreur sql");
.... |