【发布时间】:2012-03-09 11:14:36
【问题描述】:
我需要向返回 XML 数据的外部 API 发送 HTTP GET/POST 请求,然后解析这些数据。 JSP 中是否存在用于此的 API?
如果我在一个类中使用该代码并在JSP中使用它的一个方法,会有什么问题吗?
【问题讨论】:
我需要向返回 XML 数据的外部 API 发送 HTTP GET/POST 请求,然后解析这些数据。 JSP 中是否存在用于此的 API?
如果我在一个类中使用该代码并在JSP中使用它的一个方法,会有什么问题吗?
【问题讨论】:
您可以使用URLConnection 发送HTTP 请求并以InputStream 的形式获取HTTP 响应。您可以使用 JAXB 将包含 XML 文档的 InputStream 解组为遵循 XML 结构的 javabean 实例。
想象一下 XML 响应看起来像这样,
<data>
<foo>fooValue</foo>
<bar>barValue</bar>
</data>
你的 JAXB javabean 看起来像这样,
@XmlRootElement
public class Data {
@XmlElement
private String foo;
@XmlElement
private String bar;
// Getters/setters.
}
然后你可以像下面这样解组它:
InputStream input = new URL("http://example.com/data.xml").openStream();
Data data = (Data) JAXBContext.newInstance(Data.class).createUnmarshaller().unmarshal(input);
String foo = data.getFoo(); // fooValue
// ...
与 JSP 中的所有其他 Java 代码行一样,在 JSP 文件而不是普通 Java 类中执行此操作不一定会导致技术问题,但最终可能会导致维护噩梦。
【讨论】:
Data 类中。你熟悉javabean吗?您是否费心单击 JAXB 链接?它为您指明了 JAXB 教程。