Formulário de Solicitação HTTP POST com AJAX e Servlet
Em Java World Servlets são popularmente utilizados para Model View Controller (MVC) Design Pattern. Este artigo irá orientá-lo sobre como escrever aplicações baseadas AJAX que irá postar dados para Servlet e vai buscar os dados computados a partir do Servlet. Com esta abordagem, a página terá conteúdo atualizado a partir do servidor sem atualizar a jsp / página html.
Código JSP:
"text/javascript" > function getXMLObject ( ) //XML OBJECT { var xmlHttp = false ; try { xmlHttp = new ActiveXObject ( "Msxml2.XMLHTTP" ) // For Old Microsoft Browsers } catch ( e ) { try { xmlHttp = new ActiveXObject ( "Microsoft.XMLHTTP" ) // For Microsoft IE 6.0+ } catch ( e2 ) { xmlHttp = false // No Browser accepts the XMLHTTP Object then false } } if ( ! xmlHttp && typeof XMLHttpRequest != 'undefined' ) { xmlHttp = new XMLHttpRequest ( ) ; //For Mozilla, Opera Browsers } return xmlHttp ; // Mandatory Statement returning the ajax object created } var xmlhttp = new getXMLObject ( ) ; //xmlhttp holds the ajax object function ajaxFunction ( ) { if ( xmlhttp ) { var txtname = document. getElementById ( "txtname" ) ; xmlhttp. open ( "POST" , "getname" , true ) ; //getname will be the servlet name xmlhttp. onreadystatechange = handleServerResponse ; xmlhttp. setRequestHeader ( 'Content-Type' , 'application/x-www-form-urlencoded' ) ; xmlhttp. send ( "txtname=" + txtname. value ) ; //Posting txtname to Servlet } } function handleServerResponse ( ) { if ( xmlhttp. readyState == 4 ) { if ( xmlhttp. status == 200 ) { document. myForm . message . innerHTML = xmlhttp. responseText ; //Update the HTML Form element } else { alert ( "Error during AJAX call. Please try again" ) ; } } } </ script > <body> <form name="myForm" method="POST" action="getname"> <table> <tr> <td>Enter Name</td> <td><input type="text" name="txtname" id="txtname" /></td> </tr> <tr> <td colspan="2"><input type="button" value="Submit" onclick="ajaxFunction();" /></td> </tr> </table> <div id="message"></div> </form> </body> </head> </html> <html> <head> <title> JSP e Servlet usando AJAX </ title> tipo script <= "text / javascript" getXMLObject> função () / / XML OBJECT (var xmlHttp = false; try (xmlHttp = new ActiveXObject (" Msxml2.XMLHTTP ") / / Para Old Microsoft Navegadores) catch (e) (try (xmlHttp = new ActiveXObject (" Microsoft.XMLHTTP ") / / Para o Microsoft IE 6.0 +) catch e2) ((xmlHttp = false / / Não Browser aceita o objeto XMLHTTP depois false)) if (! xmlHttp & & typeof XMLHttpRequest! = 'indefinido') xmlHttp (= new XMLHttpRequest (); / / Para Mozilla,) return xmlHttp Navegadores Opera / / Obrigatório Declaração de devolução do ajax objeto criado) var xmlhttp = getXMLObject new (); / xmlhttp / detém a função ajaxFunction objeto ajax () (if (xmlhttp) (var = txtName documento. getElementById ("txtName"); xmlhttp. open ("POST", getname ", verdadeiro ); / getname / será o nome xmlhttp servlet. onreadystatechange = handleServerResponse; xmlhttp. setRequestHeader ('Content-Type', 'application / x-www-form-urlencoded) xmlhttp;. send ("txtName = + txtName". value) / / Servlet para postagem txtName handleServerResponse)) function () (if (xmlhttp. readyState == 4) (if (status == xmlhttp. 200) (document. myForm. mensagem. innerHTML = xmlhttp. responseText / / Atualizar o elemento de formulário HTML) else (alert ("Erro durante a chamada AJAX. Por favor, tente novamente");))) </ script> <body> <form name="myForm" method="POST" action="getname"> <table> <tr> <td> Enter Name </ td> <td> <input type="text" name="txtname" id="txtname" /> </ td> </ tr> <tr> <td colspan = "2"> <input type="button" value="Submeter" onclick="ajaxFunction();" /> </ td> </ tr> </ table> <div id="message"> </ div> </ form> </ body> </ head> </ html>
Código Servlet
; import java.io. *; ; java.text importação .*; ; import java.util .*; ; importação javax.servlet .*; ; javax.servlet.http importação .*; HttpServlet { getname classe pública estende HttpServlet ( init ( ServletConfig config ) throws ServletException { public void init (config ServletConfig) throws ServletException ( ( config ) ; super. init (config); ) destroy ( ) { public void destroy () ( ) doPost ( HttpServletRequest request,HttpServletResponse response ) throws IOException , ServletException { public void doPost (HttpServletRequest pedido, HttpServletResponse resposta) throws IOException, ServletException ( null ; String nome = null; response. getWriter ( ) ; PrintWriter out = resposta. getWriter (); request. getParameter ( "txtname" ) != null ) { if (request getParameter ("txtName")! = null) ( ( "txtname" ) ; = Solicitação de nome. GetParameter ("txtName"); ) else ( ; nome = ""; ) "You have successfully made Ajax Call:" + name ) ; para fora. println ("Você tem feito com sucesso Ajax Call:" + nome); ) )
Explicação para o código AJAX
Aqui eu tenho três declarado função JavaScript:
getXMLObject () - Responsável pela criação do objeto AJAX, dependendo do browser.
ajaxFunction () - responsável por chamar servlet através de chamada AJAX.
handleServerResponse () - Responsável por exibir os dados obtidos a partir do servidor.
Como funciona o AJAX Code:
- Quando a página é carregada, estou criando um objeto AJAX chamando o getXMLObject () função e retornar o objeto criado na variável xmlhttp
- Quando o usuário clica sobre o botão de entrada, ajaxFunction () é chamada para se verifica que o objeto Ajax é criado ou não, dependendo do que chama o script remoto. Aqui, um manipulador handleServerResponse função também é definida para recuperar o valor do servidor
- Quando o ReadyState da chamada AJAX chega a 4 eo status HTTP 200 é que nós passamos os dados obtido a partir do servidor para o texto
Explicação para o código do servlet
- Por função doPost padrão é chamado quando você postar o conteúdo para o servlet
- Em função doPost estou buscando os dados POST sob a forma de txtName e atribuí-lo ao nome da variável local
- Finalmente eu estou exibindo os dados tem por POST. Todos os dados apresentados é passado para o objeto Ajax, sob a forma de resposta ao apelo do Ajax para o servlet

Custom Search


































Good site I "Stumbledupon" hoje e deu-lhe um tropeço para você .. ansioso para ver o que mais tem .. mais tarde
código não funciona! u sue seu código funciona ... depois de apresentar saída servlet não é mostrado página permanecer como está .. ajuda
Eu dei os mesmos nomes e verificado o código corretamente ...
oi o código realmente funcionou, mas o seu trabalhando apenas para um valor de postagem do formulário, eu tenho um formulário que envia muitos valores de cerca de oito campos de texto, esse código não está trabalhando com os insumos, por favor não de sugerir uma solução,
ive e sua urgência para usar no meu projeto sem final,
muito obrigado antecipadamente
utilização
"Document.getElementById (" mensagem "). InnerHTML = xmlhttp.responseText";
substituir
"Xmlhttp.responseText = document.myForm.message.innerHTML";
Oi Hitesh
Eu sou novo para ajax. Eu tenho um problema para o qual eu preciso de uma solução usando ajax ..
Na minha aplicação, logo que eu login se refere a um servelt que tem o BusinessLogic e saída é um arquivo jsp exibindo uma tabela ... eu preciso atualizar essa jsp após um certo intervalo, sem qualquer ação ou evento. Tem que obter os dados atualizados do banco de dados
pls pode u dar alguns exemplos