Обработка данных XML для JSP - PullRequest
1 голос
/ 01 июля 2010

У меня есть форма / калькулятор, который отправляет себе некоторые данные, затем эти данные вычисляются путем отправки сервлета, а результаты выводятся в формате xml. Код диспетчера показан ниже:

//create instance
ServletContext sc = this.getServletContext();
//create dispatcher
RequestDispatcher rd = sc.getRequestDispatcher("/ProCalcServlet");

rd.include(request, response);

У меня есть несколько проблем с тем, что я делаю сейчас. Во-первых, возможно ли использовать удаленный URL, а не только локально? И как мне обрабатывать данные, поскольку я предполагаю, что, поскольку это сервлет, я не могу просто назвать его XML-документом и использовать DOM для получения нужных мне данных.

Совершенно новичок в этом Java-материале, даже не знаю, что именно гуглить, поэтому я как бы стреляю в темноте моими нынешними методами. Любая помощь или указания будут с благодарностью: P cheers

Ответы [ 2 ]

1 голос
/ 01 июля 2010

Надеюсь, я правильно понимаю ваши вопросы.

Возможно использовать удаленный URL. В этом случае вам нужно вызвать URL через стиль веб-службы. Вы можете использовать HttpClient для вызова URL. Затем URL вернет вам данные в виде XML (одной большой строкой).

Для обработки XML существует множество библиотек, которые позволяют вам легко это делать. Вы можете вставить DD или SAX-анализатор JDK, но, на мой взгляд, это грязно. Попробуйте использовать Castor , JDom или Dom4J ... некоторые из них позволяют запрашивать данные, используя XPath .

1 голос
/ 01 июля 2010

Вы не можете использовать RequestDispatcher для пересылки запроса на другой URL. Это позволяет только перенаправлять запросы в одно и то же веб-приложение в одном и том же контейнере. Однако вы можете использовать response.sendRedirect() для отправки браузеру перенаправления на другой сайт / URL. Однако при этом вы не сможете передавать какие-либо объекты - вам придется полагаться на параметры аргумента.

Я не уверен, что понимаю, что вы делаете с XML. Похоже, ваше первое утверждение подразумевает, что вы хотите вывести ответ в виде XML, что, безусловно, достаточно просто, просто используйте:

response.setContentType("text/xml;charset=utf-8");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...