Estou estudando Ajax, mas o livro que li mostrava exemplos com PHP ( Head RUSH AJAX ) . Ainda não vi exemplos envolvendo Java.
Gostaria de saber o seguinte. Eu faço uma requisição , via XMLHTTPRequest, para o servidor,indicando uma url. No caso do Java, qual seria esta url ? Um servlet ? Pode ser um página JSF ( faz sentido ? ) ou um ManagedBean ? Alguém teria um exemplo simples de um Servlet ( ou outra coisa qualquer) que recebesse a requisição e respondesse à página ?
No Ajax a URL independe da página a ser chamada. Pode ser uma servlet, um arquivo xml, um html, um php, asp, seja lá o que for. O Ajax, na prática, simula um requisição do browser àquela URL ao servidor. Então não importando a página que seja chamada, o retorno será, teoricamente, o mesmo tanto no Ajax quanto digitando a URL no campo de endereço.
Isso quer dizer que tu podes chamar tranqüilamente pelo Ajax uma servlet do tipo: www.site.com/Insert
quanto uma JSP: www.site.com/Insert.jsp
ou qualquer outro arquivo.
marcioa1
Alexandre,
Não entendi direito sua JSP. Ela monta um XML. Não precisa dar um comando do tipo, envia o arquivo XML de volta ?
Pode me dar um exemplo mais simples, do tipo recebe um número e retorna o dobro?
Obrigado,
Márcio
ASOBrasil
Segue exemplo básicão com Struts/AJAX. Espero que isso ajude!
//Fazumachamadaaaction.functionretrieveURL(){if(window.XMLHttpRequest){req=newXMLHttpRequest()req.onreadystatechange=listaClientestry{req.open("GET","../../listaClientes.do",true)}catch(e){alert(e)}req.send(null)}elseif(window.ActiveXObject){req=newActiveXObject("Microsoft.XMLHTTP")if(req){req.onreadystatechange=listaClientesreq.open("GET","../../listaClientes.do",true)req.send()}}}//Carregaocombo(select)comosclientes.functionlistaClientes(){if(req.readyState==4){if(req.status==200){xml=req.responseXML//Pegaaqtdederegistosqueforamserializados(utilizadoXStream)registros=xml.getElementsByTagName("list")[0].childNodes.lengthfor(i=0;i<registros;i++){codigo=xml.getElementsByTagName("codigo")[i].firstChild.datanome=xml.getElementsByTagName("nome")[i].firstChild.data//Populaocombo(select)document.formulario.codigo.options[document.formulario.codigo.length]=newOption(nome,codigo)}}else{//Tratamentoexemplodeerro,melhorarissodaqui!if(req.statusText=="Not Found"){alert("Não há clientes na base de dados!")}else{alert("Problema ao carregar clientes. ERRO: "+req.statusText)}}}}