【发布时间】:2011-07-24 03:26:58
【问题描述】:
我有一个接收 HttpServletRequest 的过滤器,请求是一个 POST,它包含一个我需要读入我的过滤器方法的 xml。从 HttpServletRequest 对象获取发布的 xml 的最佳方法是什么。
【问题讨论】:
标签: java servlets servlet-filters
我有一个接收 HttpServletRequest 的过滤器,请求是一个 POST,它包含一个我需要读入我的过滤器方法的 xml。从 HttpServletRequest 对象获取发布的 xml 的最佳方法是什么。
【问题讨论】:
标签: java servlets servlet-filters
这取决于客户端如何发送它。
如果它是作为原始请求正文发送的,则使用ServletRequest#getInputStream():
InputStream xml = request.getInputStream();
// ...
如果它是作为常规application/x-www-form-urlencoded 请求参数发送的,则使用ServletRequest#getParameter():
String xml = request.getParameter("somename");
// ...
如果它是以multipart/form-data 部分的形式作为上传文件发送的,则使用HttpServletRequest#getPart()。
InputStream xml = request.getPart("somename").getInputStream();
// ...
这是标准 servlet API 支持的方式。其他方式可能需要不同的或第 3 方 API(例如 SOAP)。
【讨论】: