Dúvida em Ajax, xml e DOM  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
marthian_2
JavaBaby
[Avatar]

Membro desde: 24/09/2007 12:44:38
Mensagens: 92
Offline

Bom dia pessoal,

tenho q implementar uma agenda de contato bem simples, mas não estou conseguindo.

segue os codigos abaixo:

ajax.js
function getXMLHttpRequest() {
/* Internet Explorer */
if (window.ActiveXObject) {
var versoes = ["Microsoft.XMLHttp", "MSXML2.XMLHttp",
"MSXML2.XMLHttp.3.0", "MSXML2.XMLHttp.4.0",
"MSXML2.XMLHttp.5.0", "MSXML2.XMLHttp.6.0"];
for (i=0; i<versoes.length; i++) {
try {
var xmlHttp = new ActiveXObject(versoes[i]);
return xmlHttp;
} catch (ex) {}
}
}
/* Mozilla, Opera, Firefox e outros */
else if (window.XMLHttpRequest) {
return new XMLHttpRequest();
}
else {
return null;
}
}

function buscar() {
var filtro = document.getElementById("filtroContato").value;
var ajax = getXMLHttpRequest();
if (ajax!=null) {

/* ************************************************************* */
/* Tratar o evento no botão buscar */
/* ************************************************************* */
ajax.onreadystatechange = function() {
if (ajax.readyState == 4) {
if (ajax.status == 200) {

alert(ajax.responseXML.getElementsByTagName("resposta")[0].getAttribute("status"));
/* ************************************ */
/* TRATAMENTO DO EVENTO NO BOTÃO BUSCAR */
/* ************************************ */

}
}
}

ajax.open("GET", "BuscaContatoServlet?nome="+escape(filtro), true);
ajax.send(null);
}
else {
alert("Seu navegador não suporta AJaX!");
}
}

function incluir() {
var nomeContato = document.getElementById("filtroContato").value;
var ajax = getXMLHttpRequest();
if (ajax!=null) {

/* ************************************************************* */
/* Tratar o evento no botão incluir */
/* ************************************************************* */
ajax.onreadystatechange = function() {
if (ajax.readyState == 4) {
if (ajax.status == 200) {

alert(ajax.responseXML.getElementsByTagName("resposta")[0].getAttribute("status"));
/* ************************************* */
/* TRATAMENTO DO EVENTO NO BOTÃO INCLUIR */
/* ************************************* */

}
}
}

ajax.open("POST", "AdicionaContatoServlet", true);
ajax.setRequestHeader("content-type","application/x-www-form-urlencoded");
ajax.send("nome="+escape(nomeContato));
}
else {
alert("Seu navegador não suporta AJaX!");
}
}

function atualizar() {
var nomeContato = document.getElementById("nomeContato").value;
var emailContato = document.getElementById("emailContato").value;
var telefoneContato = document.getElementById("telefoneContato").value;
var ajax = getXMLHttpRequest();
if (ajax!=null) {

/* ************************************************************* */
/* Tratar o evento no botão atualizar */
/* ************************************************************* */
ajax.onreadystatechange = function() {
if (ajax.readyState == 4) {
if (ajax.status == 200) {

alert(ajax.responseXML.getElementsByTagName("resposta")[0].getAttribute("status"));
/* *************************************** */
/* TRATAMENTO DO EVENTO NO BOTÃO ATUALIZAR */
/* *************************************** */

}
}
}

ajax.open("POST", "AtualizaContatoServlet", true);
ajax.setRequestHeader("content-type","application/x-www-form-urlencoded");
ajax.send("nome="+escape(nomeContato)+"&email="+escape(emailContato)+"&telefone="+escape(telefoneContato));
}
else {
alert("Seu navegador não suporta AJaX!");
}
}



? Ao clicar no botão inserir, um servlet chamado AdicionaContatoServlet é invocado pelo motor AJaX, passando como parâmetro o nome fornecido no campo ?filtroContato?. No caso de sucesso, o servlet é pra retornar um documento XML conforme a seguir:

<resposta status="Ok">
<contato>
<nome>Fulano</nome>
<email>desconhecido</email>
<telefone>desconhecido</telefone>
</contato>
</resposta>

? Onde ?Fulano? foi o valor informado pelo usuário. No cadastro de novos contatos, por padrão, seu e-mail e telefone são desconhecidos.
? No caso de falha, o servlet é pra retornar o seguinte documento XML:

<resposta status = "Falha"></resposta>

? Tratamento para o Sucesso: Adicionar o nome do contato na lista de contatos do div ?resumoLista?.
? Tratamento para a Falha: Exibir uma mensagem de erro como um alerta para o usuário.


web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlnssi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<listener>
<listener-class>ProjetoFWebSessionListener</listener-class>
</listener>
<servlet>
<servlet-name>AdicionaContatoServlet</servlet-name>
<servlet-class>AdicionaContatoServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>AtualizaContatoServlet</servlet-name>
<servlet-class>AtualizaContatoServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>LeContatoServlet</servlet-name>
<servlet-class>LeContatoServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>BuscaContatoServlet</servlet-name>
<servlet-class>BuscaContatoServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AdicionaContatoServlet</servlet-name>
<url-pattern>/AdicionaContatoServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>AtualizaContatoServlet</servlet-name>
<url-pattern>/AtualizaContatoServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>LeContatoServlet</servlet-name>
<url-pattern>/LeContatoServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>BuscaContatoServlet</servlet-name>
<url-pattern>/BuscaContatoServlet</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>120</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>
index.html
</welcome-file>
</welcome-file-list>
</web-app>



[MSN]
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team