【发布时间】:2012-11-17 15:50:37
【问题描述】:
我有一个关于在 Java Servlet 中使用 ServletInputStream 和 ServletOutputStream 的问题。首先,我将提供一些非常需要的上下文:
我正在处理的任务是在谷歌应用引擎中实现任务队列。我已经能够将任务添加到应用程序引擎并调用适当的工作人员。但是,我正在努力弄清楚如何将可序列化对象的ArrayList<> 传递给工作人员的doPost() 方法。普遍的方法显然是分别使用 HTTP 请求和响应对象的输入和输出流来处理 servlet 之间的这种通信。我已经广泛搜索,但无法找到一个明确的例子来说明如何准备这样一个数组列表作为输出流传输,将它添加到第一个 servlet 的响应中,然后从第二个 servlet 中的请求中检索它和最后将其转换回数组列表,用于doPost() 方法的代码。所以这基本上是我的问题。由于我对 Java 缺乏经验,我很难自己弄清楚这一切,而且大部分时间都在努力解决它。
为了更清楚一点,我将发布相关工作人员的doPost() 方法:
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{
try
{
ArrayList<Quote> qs = /*Here the list needs to be read in.*/ null;
EntityManager manager = EMF.get().createEntityManager();
CarRentalModel.get().confirmQuotes(qs, manager);
}
catch (ReservationException e)
{
}
}
任何帮助将不胜感激。
提前谢谢你,
凯文
【问题讨论】:
-
您似乎对 HTTP 比对 servlet 还陌生。客户究竟是什么?听起来好像它不仅仅是一个 HTML 页面,而且您正在尝试开发 Web 服务。您是否考虑过像 XML 或 JSON 这样更可重用的输入格式?使用 Java 序列化,您只能使用基于 Java 的客户端。
-
不错,我对 HTTP 确实很陌生,而且它确实是一个非常简单的 Web 服务。但是我必须坚持给定的方法,我只能根据分配的参数来实现它。但是,我会纯粹出于教育原因考虑您的建议。
标签: java google-app-engine servlets inputstream