Olá, gostaria de ajuda para o ajax q estou usando… Gostaria q se o usuario ja existir…ao submeter o form…aparecesse uma alerta e nao submetesse enquanto o usuario n for valido…alguem pode implementar isso no meu codigo?
AjaxServlet.java
package com.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.loja.conexao.JDBCBase;
/**
* Servlet implementation class for Servlet: AjaxServlet
*
*/
public class AjaxServlet extends HttpServlet
{
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
response.setContentType("text/xml");
PrintWriter out = response.getWriter();
String usuario = request.getParameter("usuario");
String resultado = "ok";
String msg = "Usuário válido";
out.println("<?xml version='1.0' encoding='iso-8859-1'?>");
if(!isValido(usuario))
{
resultado = "erro";
msg = "Usuário inválido";
}
else
{
try
{
if(existe(usuario))
{
resultado = "erro";
msg = "Usuário já cadastrado. Tente outro";
}
}
catch(Exception e)
{
resultado = "erro";
msg = "Erro ao validar: "+e.getMessage();
}
}
out.println("<validacao resultado='"+resultado+"'>"+msg+"</validacao>");
out.close();
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
// TODO Auto-generated method stub
}
public boolean isValido(String usuario)
{
boolean valido = false;
if(usuario==null)
{
return valido;
}
if((usuario.length()>=6))
{
valido = true;
}
return valido;
}
public boolean existe(String usuario) throws Exception
{
boolean existente = false;
Connection con = JDBCBase.getConexao();
PreparedStatement stmt = con.prepareStatement("select * from usuarios where login = ?");
stmt.setString(1, usuario);
ResultSet res = stmt.executeQuery();
//existente = res.first();
existente = res.next();
res.close();
stmt.close();
con.close();
return existente;
}
}
login.js
function newXMLHttpRequest(){
if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
} else if (window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
}
return req;
}
function validar(usuario){
req = newXMLHttpRequest();
req.open("GET", "http://localhost:8080/loja2/AjaxServlet?usuario="+usuario,true);
req.onreadystatechange = function(){
if (req.readyState==4){
if(req.status==200){
var label = document.getElementById("valido");
var xml = req.responseXML;
var root = xml.getElementsByTagName("validacao").item(0);
var msg = root.firstChild.data;
var res = root.getAttribute("resultado");
if(res=="erro"){
label.style.color = "red";
}else{
label.style.color = "green";
}
label.innerHTML = msg;
}else{
alert("Erro!");
}
}
}
req.send(null);
}
index.jsp
<input name="usuario" type="text" class="FormNomeSobrenome" id="usuario" maxlength="15" onkeyup="javascript:validar(this.value)">
<label id="valido" class="style1" style="font-weight:bold"></label>