2010-07-01 59 views
1

我有一个表单/计算器,它自己发布一些数据,然后通过调度一个servlet来计算这些数据,并将结果输出为xml。调度员代码如下所示:处理JSP的XML数据

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

rd.include(request, response); 

虽然我现在正在做的事情有一些问题。首先,是否可以使用远程URL而不是本地?我该如何处理数据,因为我假设因为它是一个servlet,所以我不能将它称为一个XML文档并使用DOM来获取我想要的数据。

相当新的这个Java的东西,甚至不知道什么谷歌的确切,所以我有点用我目前的方法在黑暗中拍摄。任何帮助或指示将不胜感激:P欢呼

回答

1

我希望我正确地理解你的问题。

可以使用远程URL。在这种情况下,您需要通过Web服务样式调用URL。您可以使用HttpClient来调用URL。然后URL将以XML格式返回数据(以一个大字符串)。

为了处理XML,有许多库可以让您轻松地完成此操作。你可以坚持JDK的DOM或SAX解析器,但在我看来这很麻烦。考虑使用CastorJDomDom4J ...其中有些允许您使用XPath查询数据。

1

您不能使用RequestDispatcher转发请求到不同的URL。这只允许您将请求转发到同一容器上的同一Web应用程序。但是,您可以使用response.sendRedirect()将浏览器重定向到其他网站/ URL。但是,这样做,您将无法传递任何对象 - 您必须依赖参数参数。

我不确定我是否理解你在用XML做什么。你的第一个声明似乎在暗示,你要输出的响应,XML,这就足够了肯定容易,只需使用:

response.setContentType("text/xml;charset=utf-8");