Home > AJAX , Java > Modulo di richiesta POST HTTP utilizzando AJAX e Servlet

Modulo di richiesta HTTP POST utilizzando AJAX e Servlet

In Java Servlet Mondo sono comunemente utilizzati per Model View Controller (MVC) Design Pattern. Questo articolo vi guida sulla scrittura di applicazione basata su AJAX, che pubblicherà i dati di Servlet e al caricamento dei dati calcolati dal Servlet. Con questo approccio la pagina verrà visualizzato il contenuto aggiornato dal server senza aggiornare la jsp / pagina html.

JSP Codice:

  <html>
 <head>
 <title> JSP e Servlet utilizzando AJAX </ title>
 "text/javascript" > Tipo di script <= "text / javascript">

 //XML OBJECT funzione getXMLObject () / / oggetto XML
 (
    false ; XMLHTTP var = false;
    try (
      ActiveXObject ( "Msxml2.XMLHTTP" ) // For Old Microsoft Browsers XMLHTTP = new ActiveXObject ("Msxml2.XMLHTTP") / / Per Old Browser Microsoft
    )
    e ) { catch (e) (
      try (
        ActiveXObject ( "Microsoft.XMLHTTP" ) // For Microsoft IE 6.0+ XMLHTTP = new ActiveXObject ("Microsoft.XMLHTTP") / / Per Microsoft IE 6.0 +
      )
      e2 ) { catch (e2) (
        // No Browser accepts the XMLHTTP Object then false XMLHTTP = false / / No browser accetta l'oggetto XMLHTTP poi false
      )
    )
    ! xmlHttp && typeof XMLHttpRequest != 'undefined' ) { if (! XMLHTTP & & typeof XMLHttpRequest! = 'undefined') (
      XMLHttpRequest ( ) ; //For Mozilla, Opera Browsers XMLHTTP = new XMLHttpRequest (); / / Per Mozilla, Opera Browser
    )
    // Mandatory Statement returning the ajax object created XMLHTTP ritorno; / / Obbligatoria Dichiarazione resa dei ajax oggetto creato
 )

 new getXMLObject ( ) ; //xmlhttp holds the ajax object XMLHTTP var = getXMLObject nuovo (); / / XMLHTTP contiene l'oggetto ajax

 ajaxFunction funzione () (
   xmlhttp ) { if (XMLHTTP) ( 
  	 document. getElementById ( "txtname" ) ; txtName var = documento. getElementById ("txtName");
     "POST" , "getname" , true ) ; //getname will be the servlet name XMLHTTP. open ("POST", "getName", true); / / getName sarà il nome servlet
     handleServerResponse ; XMLHTTP. onreadystatechange = handleServerResponse;
     'Content-Type' , 'application/x-www-form-urlencoded' ) ; XMLHTTP. setRequestHeader ('Content-Type' applicazione, '/ x-www-form-urlencoded');
     "txtname=" + txtname. value ) ; //Posting txtname to Servlet XMLHTTP. send ("txtName =" txtName +. value); / / Distacco txtName di Servlet
   )
 )

 handleServerResponse funzione () (
    xmlhttp. readyState == 4 ) { if (xmlhttp. readyState == 4) (
      xmlhttp. status == 200 ) { if (xmlhttp. status == 200) (
        . innerHTML = xmlhttp. responseText ; //Update the HTML Form element documento. myForm. messaggio. innerHTML = XMLHTTP. responseText; / / Aggiorna l'elemento HTML form
      )
      else (
         "Error during AJAX call. Please try again" ) ; alert ("Errore durante la chiamata AJAX. Riprova");
      )
    )
 )
 </ Script>
 <body>
 <form name="myForm" method="POST" action="getname">
 <table>
  <tr>
   <td> Inserisci Nome </ 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> 

Servlet codice

 ; import java.text.* ; import java.util.* ; import javax.servlet.* ; import javax.servlet.http.* ; public class getname extends HttpServlet { public void init ( ServletConfig config ) throws ServletException { super . init ( config ) ; } public void destroy ( ) { } public void doPost ( HttpServletRequest request,HttpServletResponse response ) throws IOException , ServletException { String name = null ; PrintWriter out = response. getWriter ( ) ; if ( request. getParameter ( "txtname" ) != null ) { name = request. getParameter ( "txtname" ) ; } else { name = "" ; } out. println ( "You have successfully made Ajax Call:" + name ) ; } } import java.io. *; java.text importazione .*; import java.util .*; import javax.servlet .*; javax.servlet.http importazione .*; getName public class estende HttpServlet (void init pubblico (config ServletConfig) getta ServletException (super. init (config);) public void destroy () () public void doPost (richiesta HttpServletRequest, risposta HttpServletResponse) throws IOException, ServletException (String nome = null; PrintWriter out = risposta. getWriter (); if (richiesta . getParameter ("txtName")! =) null (nome = richiesta. getParameter ("txtName");) else (name = "";) out. println ("È stata fatta Ajax chiamata:" + nome);) ) 

Spiegazione per il codice AJAX

Qui i tre hanno dichiarato funzione JavaScript:
getXMLObject () - Responsabile per la creazione dell'oggetto AJAX a seconda del browser.
ajaxFunction () - Responsabile per la chiamata servlet tramite chiamata AJAX.
handleServerResponse () - Responsabile per la visualizzazione dei dati recuperati dal server.

Come funziona il codice AJAX Works:

  • Quando la pagina viene caricata sto creando un oggetto AJAX chiamando il getXMLObject () e restituire l'oggetto creato nella variabile XMLHTTP
  • Quando l'utente fa clic sul pulsante di input, ajaxFunction () viene chiamato controlli che per Ajax se l'oggetto viene creato o no e in base a che chiama lo script remoto. Ecco una handleServerResponse funzione di gestione è definita anche per recuperare il valore dal server
  • Quando il ReadyState della chiamata AJAX raggiunge i 4 e lo stato di HTTP è di 200 si passa ai dati recuperati dal server nella casella di testo

Il tuo indirizzo email:

Spiegazione per il codice della servlet

  • Con la funzione predefinita doPost viene chiamata quando si registra il contenuto al servlet
  • In funzione doPost Io sono al caricamento dei dati POST in forma di txtName e di assegnarlo al nome della variabile locale
  • Finalmente sono la visualizzazione dei dati attraverso preso POST. Tutti i dati visualizzati viene passato all'oggetto Ajax in forma di risposta alla chiamata Ajax apportate al servlet


Custom Search

Articoli popolari:

Share and Enjoy:
  • Print
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • DZone
  • email
  • IndianPad
  • LinkedIn
  • Live
  • MySpace
  • Netvibes
  • RSS
  • Technorati
  • Yahoo! Bookmarks
  • Yahoo! Buzz
  • Reddit
  • Add to favorites
  • PDF
  • Twitter
Tags: , Categorie: AJAX , Java Tag: ,
  1. 8 aprile 2008 alle 04:50 | # 1

    Good site I "Stumbledupon" oggi e ha dato un inciampo per voi .. ansioso di vedere cos'altro avete .. più tardi

  2. Riya
    19 Febbraio, 2009 alle 03:54 | # 2

    il codice non funziona! u citare in giudizio il suo codice funziona ... dopo presentare uscita servlet non mostrato pagina restare così com'è .. aiuto

  3. Riya
    19 Febbraio, 2009 alle 03:55 | # 3

    Ho dato lo stesso nome e controllato il codice correttamente ...

  4. Ahmed
    16 Marzo 2009 a 11:05 | # 4

    ciao il codice realmente lavorato but suo lavorando solo per il distacco di un valore a la forma, ho un modulo che i valori di molti messaggi da circa otto campi di testo, questo codice non funziona con chi non è di ingressi si prega di suggerire una soluzione,
    ive e la sua urgenza di utilizzare nel mio progetto sem finale,

    Grazie mille in anticipo

  5. Sottovento
    25 Novembre 2009 ore 22:14 | # 5

    uso
    "Document.getElementById (" messaggio "). Xmlhttp.responseText innerHTML =;"
    sostituire
    "Xmlhttp.responseText document.myForm.message.innerHTML =;"

  6. Anonimo
    7 Luglio, 2010 alle 05:15 | # 6

    Ciao Hitesh

    Sono nuovo di AJAX. Ho un problema per il quale ho bisogno di una soluzione con ajax ..
    Nel mio ricorso in quanto appena il login si riferisce a uno servelt which ha il Businesslogic and output è uno jsp file visualizzando una tabella ... i necessario aggiornare il jsp dopo un certo intervallo without any dell'azione o dell'evento. Essa ha per ottenere i dati aggiornati dal database
    pls u può fornire alcuni esempi

  1. 31 Marzo 2010 alle 18:29 | # 1