Лабораторная работа: Создание приложений на AJAX

req. setRequestHeader("Content-Type",

"application/x-www-form-urlencoded");

// Посылаем закодированные данные, говорящие о том, что я хочу добавить

// определенный продукт в корзину.

req. send("action=add&item="+itemCode);

}

После всего этого вы поняли первую часть в механизме Ajax - собственно создание и передача HTTP-запроса от клиента. Следующим шагом будет код сервлета на языке Java для обработки запроса.

В начало. Обработка запроса сервлета

Обработка XMLHttpRequest с помощью сервлета такая же, как и обработка обычного HTTP-запроса из браузера. Закодированные данные, отсылаемые в содержимом запроса POST, могут быть получены с помощью вызовов HttpServletRequest. getParameter(). Ajax запрашивает участие в HttpSession, такой же, как и в регулярных Web запросах из приложения. Это полезно для примера сценария корзины покупателя, поскольку позволяет мне заключить состояние пользовательской корзины покупателя в JavaBeans и удерживать это состояние во время сессии между двумя запросами.

Листинг 4 - часть простого сервлета, который обрабатывает Ajax запросы, чтобы обновить корзину покупателя. Cart получается из сессии пользователя и его состояние обновляется в соответствии с параметрами запроса. Cart затем сериализуется в XML-формате, а XML образуется в ServletResponse. Важно установить тип содержимого запроса в application/xml, в противном случае XMLHttpRequest не будет анализировать содержимое ответа.

Листинг 4. Код сервлета для обработки Ajax-запросов

public void doPost(HttpServletRequest req,

HttpServletResponse res)

throws java. io. IOException {

Cart cart = getCartFromSession(req);

String action = req. getParameter("action");

String item = req. getParameter("item");

if ((action! = null) &&(item! = null)) {

// Добавить или удалить продукт из Cart

if ("add". equals(action)) {

cart. addItem(item);

} else if ("remove". equals(action)) {

cart. removeItems(item);

}

}

// Сериализуем состояние Cart в XML-формате

String cartXml = cart. toXml();

// Записываем полученный XML в запрос.

res. setContentType("application/xml");

res. getWriter(). write(cartXml);

К-во Просмотров: 327
Бесплатно скачать Лабораторная работа: Создание приложений на AJAX