Главная > AJAX , Java > HTTP POST Форма запроса с помощью AJAX и Servlet

HTTP POST Форма запроса с помощью AJAX и Servlet

В Java World Сервлеты, обычно используемые для Model View Controller (MVC) шаблон проектирования. Эта статья поможет вам писать AJAX приложение, которое будет размещать данные в Servlet и получению расчетных данных из Servlet. При таком подходе страница будет получить обновленное содержание с сервера, без обновления JSP / HTML-страницу.

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 и Servlet использованием AJAX </ TITLE> <скрипт типа = "текст / JavaScript"> getXMLObject функции () / / XML ОБЪЕКТ (VAR XmlHttp = ложным, попробуйте (XmlHttp = новый ActiveXObject (" Msxml2.XMLHTTP ") / / для старых браузеров Microsoft) поймать (е) ((попытаться XmlHttp = новый ActiveXObject (" Microsoft.XMLHTTP ") / / Для Microsoft IE 6.0 +) поймать (е2) = (XmlHttp ложной / / Нет браузера принимает XMLHTTP объекта, то ложно)), если (! XmlHttp и и ЬуреоЕ XMLHttpRequest! = "неопределенные") (XmlHttp = новый XMLHttpRequest (); / / Для Mozilla, Opera Браузеры) возвращение XmlHttp / / Обязательное заявление возвращается Ajax-объект, созданный) VAR = XMLHTTP новых getXMLObject (); / / XMLHTTP проводит Ajax ajaxFunction функции объекта () (если (XMLHTTP) (VAR txtname = документ. идентификатору ("txtname"); XMLHTTP. открытое ("POST", "GetName", правда ) / / GetName будет сервлета XMLHTTP имя. onreadystatechange = handleServerResponse; XMLHTTP. setRequestHeader ('Content-Type', 'применение / х-веб-формы urlencoded'); XMLHTTP. отправить ("txtname =" + txtname. стоимости); / / Отправка txtname в Servlet)) функции handleServerResponse () (если (xmlhttp. readyState == 4) (если (xmlhttp. статус == 200) (документа. MyForm. сообщении. innerHTML = XMLHTTP. responseText / / Обновление элемента формы HTML) (еще оповещение ("Ошибка во время разговора AJAX. Попробуйте еще раз");))) </ SCRIPT> <body> <form name="myForm" method="post" action="getname"> <table> <tr> <td> Введите имя </ TD> <td> <input type="text" name="txtname" id="txtname" /> </ TD> </ TR> <tr> <TD Объединения = "2"> <input type="button" value="Submit" onclick="ajaxFunction();" /> </ TD> </ TR> </ TABLE> <div id="message"> </ DIV> </ FORM> </ BODY> </ HEAD> </ HTML> 

Servlet кодекса

  ; импорт java.io. *;

 ; импорт java.text .*;

 ; ввоз java.util .*;

 ; импорт javax.servlet .*;

 ; импорт javax.servlet.http .*;

 HttpServlet { общественного GetName класс расширяет HttpServlet (

	 init ( ServletConfig config ) throws ServletException { общественного инициализации недействительным (ServletConfig конфигурации) бросает ServletException (	
		 ( config ) ; супер. инициализации (конфигурации);
	 )

	 destroy ( ) { общественного недействительными уничтожить () (

	 )

	 doPost ( HttpServletRequest request,HttpServletResponse response ) throws IOException , ServletException { общественного doPost недействительным (HttpServletRequest просьбе HttpServletResponse ответ) броски IOException, ServletException (
		 null ; String имя = NULL;
		 response. getWriter ( ) ; PrintWriter из = ответ. GetWriter ();
		 request. getParameter ( "txtname" ) != null ) { если (request. getParameter ("txtname")! = NULL) (
			 ( "txtname" ) ; имя = запрос. getParameter ("txtname");
		 )
                 зе (
                        ; имя = "";
                 )
  	         "You have successfully made Ajax Call:" + name ) ; вне. println ("Вы успешно сделали Ajax Call:" + имя);
	 )
 ) 

Пояснение для AJAX кодекса

Здесь я объявил 3 JavaScript функции:
getXMLObject () - отвечает за создание AJAX объекта в зависимости от браузера.
ajaxFunction () - отвечает за вызов сервлета через вызов AJAX.
handleServerResponse () - отвечает за отображение данных, полученных с сервера.

Как работает код AJAX:

  • При загрузке страницы я создаю AJAX объекта по телефону getXMLObject () и возвращения объекта, созданного на XMLHTTP переменной
  • Когда пользователь нажимает на кнопку ввода, ajaxFunction () вызывается, которая проверяет ли Ajax создается объект или нет, и в зависимости от того звонки удаленного сценария. Здесь handleServerResponse функции обработчика определяется также для получения значения с сервера
  • Когда readystate призыва AJAX достигает 4 и HTTP-статус 200 Перейдем данные полученные с сервера в текстовое поле

Адрес электронной почты:

Объяснение Servlet кодекса

  • По умолчанию функция doPost вызывается при публикации контента на сервлет
  • В doPost функции я извлечения данных POST в виде txtname и назначение его местное название переменной
  • Наконец я показаны данные, полученные через POST. Все данные отображаются переходит в руки Ajax объекта в форме ответов на Ajax с призывом к сервлета


Система пользовательского поиска

Популярные статьи:

Делите и наслаждайтесь:
  • 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: , Категории: AJAX , Java Теги: ,
  1. 8 апреля 2008 в 4:50 | # 1

    Хороший сайт I "Stumbledupon" сегодня и дал ему споткнуться для вас .. ждем, что еще у вас есть .. позже

  2. Рия
    19 февраля 2009 в 3:54 | # 2

    код не работает! иск у его код работает ... после выхода представить сервлет не отображается страница оставаться как есть .. помочь

  3. Рия
    19 февраля 2009 в 3:55 | # 3

    Я дал те же имена и проверить код правильно ...

  4. Ахмед
    16 марта 2009 в 11:05 | # 4

    привет код действительно работал, но его Workin только для размещения одного значения из формы, у меня есть вид, что должности много значений некоторых 8 текстовых полей, этот код не работает с теми, нет материалов, пожалуйста предложить решение,
    и срочная Ive использовать в своей окончательного проекта сем,

    Большое спасибо заранее

  5. Подветренный
    25 ноября 2009 в 22:14 | # 5

    использовать
    "Document.getElementById (" сообщение "). Xmlhttp.responseText innerHTML =;"
    заменять
    "Document.myForm.message.innerHTML xmlhttp.responseText =;"

  6. Анонимный
    7 июля 2010 в 5:15 | # 6

    Привет Hitesh

    Я новичок в Ajax. У меня есть проблема, для которой мне нужно решение с использованием Ajax ..
    В мое заявление, как только я Логин это относится к servelt которая Businesslogic и выход JSP-файл отображения таблицы ... Мне необходимо обновить этот JSP после определенного интервала без каких-либо действие или событие. Он должен получить данные обновилась из базы данных
    Может у Pls привести несколько примеров

  1. 31 марта 2010 в 18:29 | # 1