HttpServletRequest JAXP DOM: чтение данных POST - PullRequest
1 голос
/ 20 января 2012

В моем сервлете есть объект HttpServletRequest, который получает документ XML, размещенный на нем. Я хотел бы использовать JAXP (не JAXB, потому что для одного он использует слишком много дискового пространства для моего конкретного случая использования). Мне нужно разобрать документ в объект DOM в памяти, где он будет обрабатываться. Любая идея о том, как проанализировать POST XML из объекта запроса?

Спасибо

Джон Гош

1 Ответ

0 голосов
/ 21 января 2012

Это зависит от того, как клиент отправил его.

Если он соответствует стандарту HTTP multipart/form-data (как это было использовано вместе с HTML <input type="file">), тогда используйте Apache Commons FileUpload или Servlet 3.0 HttpServletRequest#getParts(), чтобы извлечь нужную деталь из составного запроса.Вы можете найти несколько конкретных примеров здесь: Как загрузить файлы на сервер с помощью JSP / Servlet? В конечном итоге вы бы хотели получить InputStream.

Если это необработанный запростело (т. е. тело запроса whole на самом деле является целым файлом XML, это часто встречается в доморощенных низкоуровневых приложениях, использующих протокол HTTP для передачи файлов), затем вы можете получить его как InputStreamпросто HttpServletRequest#getInputStream().

Независимо от того, как вы используете / выбираете, вам нужно убедиться, что вы каким-то образом получите InputStream со ссылкой на файл XML.Таким образом, вы можете передать его в API JAXP обычным способом, который имеет методы, принимающие InputStream.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...