Servlets - 如何包含()资源并将其响应作为String?

时间:2011-06-30 02:32:01

标签: java servlets requestdispatcher

我尝试实现服务器端API方法,该方法允许将一批API请求作为单个请求的一部分执行,批处理中的每个请求的响应都包含在{{1}中返回给客户端。

从本质上讲,客户端使用"批处理"来调用服务器。参数沿着:

JSONArray

这指定由两个API调用组成的批处理。我想要做的是执行每一个,并将响应组合成如下:

[{method: "getStatus" userId: "5"}, {method: "addFriend", userId: "5", friendId: "7"}]

为了执行批处理,我正在迭代地调用[{status: "success", status: "At work..."}, {status: "error", message: "Friend not found!"}] ,如下:

RequestDispatcher.include()

一切正常(所有已批处理的请求都已执行,服务器正确处理它们),但我无法弄清楚如何获取包含的响应,以便我可以将其添加到结果数组中。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

在处理各个请求时,我首先尝试避免通过servlet堆栈。你不能直接打电话给你的一些商业方法吗?我很欣赏你想重新使用调度和参数解析逻辑,但也许那部分不是很复杂。

如果无法做到这一点,也许您可​​以在各个处理程序中添加request.setAttribute("theResult", jsonData),这样您就不必查看文本结果,但可以更轻松地检索数据。

如果您仍想查看响应流,则需要创建ResponseWrapper。例如,请查看this question