Você está na página 1de 4

Fioto... Eu crio um Servlet que far todas as invocaes de mtodos que faro a validao no banco de dados...

D uma olhada a e se voc no entender a lgica me pergunta... O cdigo abaixo est no jeitinho pra voc utilizar a funo em Ajax que encontra-se no final do arquivo... protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String cpf = request.getParameter("cpf"); String rm = request.getParameter("rm"); String email = request.getParameter("email"); String login = request.getParameter("login"); String mensagem = null; try { UsuarioDAO dao = new UsuarioDAOImpl(); if (!cpf.equals("null")) { if (dao.realizarValidacaoDados(cpf, null, null, null)) { mensagem = "Este CPF j est cadastrado no sistema!"; response.setContentType("text/plain;charset=ISO-8859-1"); response.setHeader("Cache-Control", "no-cache"); response.setHeader("Pragma", "no-cache"); response.setDateHeader("Expires", -1); PrintWriter writer = response.getWriter(); writer.print(mensagem); writer.close(); } } else if (!rm.equals("null")) { if (dao.realizarValidacaoDados(null, rm, null, null)) { mensagem = "Este Registro de Matrcula j est cadastrado no sistema!"; response.setContentType("text/plain;charset=ISO-8859-1"); response.setHeader("Cache-Control", "no-cache"); response.setHeader("Pragma", "no-cache"); response.setDateHeader("Expires", -1); PrintWriter writer = response.getWriter(); writer.print(mensagem); writer.close(); } } else if (!email.equals("null")) { if (dao.realizarValidacaoDados(null, null, email, null)) { mensagem = "Este E-MAIL j est cadastrado no sistema!"; response.setContentType("text/plain;charset=ISO-8859-1"); response.setHeader("Cache-Control", "no-cache"); response.setHeader("Pragma", "no-cache"); response.setDateHeader("Expires", -1);

PrintWriter writer = response.getWriter(); writer.print(mensagem); writer.close(); } } else if (!login.equals("null")) { if (dao.realizarValidacaoDados(null, null, null, login)) { mensagem = "Este LOGIN j est cadastrado no sistema!"; response.setContentType("text/plain;charset=ISO-8859-1"); response.setHeader("Cache-Control", "no-cache"); response.setHeader("Pragma", "no-cache"); response.setDateHeader("Expires", -1); PrintWriter writer = response.getWriter(); writer.print(mensagem); writer.close(); } } } catch (Exception ex) { System.out.println("Problemas ao invocar mtodo para validar dados do usurio! Erro: " + ex.getMessage()); ex.printStackTrace(); } }

Agora, voc cria um arquivo chamado ajax.js e coloca esta funo nele.... A funo abaixo faz uma chamada assncrona , ou seja, sem carregar a pgina toda, ao Servlet que voc criou acima passando os parmetros necessrios... function objXMLHttp(){ if (window.XMLHttpRequest){//Mozilla, Safari var objetoXMLHttp = new XMLHttpRequest(); return objetoXMLHttp; } else if (window.ActiveXObject){//IE var versoes = [ "MSXML2.XMLHttp.6.0","MSXML2.XMLHttp.5.0", "MSXML2.XMLHttp.4.0", "MSXML2.XMLHttp.3.0", "MSXML2.XMLHttp", "Microsoft.XMLHttp" ]; for (var i=0; i < versoes, length; i++){ try{ var objetoXMLHttp = new ActiveXObject(versoes[i]); return objetoXMLHttp; } catch (ex){

//nada aqui } } } return false; }

function realizarValidacao(parametros) { var dados = "servlet/ValidarDadosAcesso?"+parametros; var oXMLHttp = objXMLHttp(); oXMLHttp.open("POST", dados, true); oXMLHttp.setRequestHeader("Content-Type", "application/x-www-formurlencoded"); oXMLHttp.onreadystatechange = function(){ if (oXMLHttp.readyState == 4){ if (oXMLHttp.status == 200){ mensagem = oXMLHttp.responseText; if(mensagem.toString().search("Este")==-1){ //no faz nada } else { alert(mensagem); } } else { mensagem("Ocorreu o erro: " + oXMLHttp.statusText); } } }; oXMLHttp.send(dados); return false; }

No arquivo .jsp voc dever acrescentar esta linha para que ele possa utilizar a funo do arquivo ajax.js... <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

<script type="text/javascript" src="ajax/ajax.js"></script> <title>Projeto SIGAW - Sistema Interno de Gerenciamento ao Acesso Wireless</title> </head> .. </html>

Na parte do formulrio onde voc coloca o campo de texto do CPF por exemplo voc deve chamar a funo de validao... <tr> <td align="center"><div align="left"><font size="2">E-mail: * <font size="1"><b>(Priorize o e-mail @fatec)</b></font></font></div></td> <td align="center"><label><font size="2"> <div align="left"> <input name="email_usuario" type="text" id="email_usuario" size="50" maxlength="50" style="text-transform:lowercase; font-size:smaller" onblur="realizarValidacao('cpf=null&rm=null&email='+this.value+'&login=null')" /> </div> </font></label></td> </tr> O cdigo em negrito acima disparado quando o usurio sai da caixa de texto. A, ele chama a funo realizarValidao e passa essa String como parmetro... A funo ajax chama o servlet passando os parmetros em questo e l voc faz tudo como normalmente, ou seja, chama a DAO e a DAOImpl e l voc implementa o mtodo de validao retornando true ou false... E a j era!!!! Falow....