【发布时间】:2013-02-01 17:32:31
【问题描述】:
很抱歉用这个来打断你的一天,但我已经花了很长时间在网上搜寻答案,但我完全被困住了!
在 Web 应用程序中,我使用 RequestDispatcher 将请求从 servlet_A 发送到 servlet_B。 在 servlet_B 中,我运行一些代码生成一个简单的字符串值,该值作为对 servlet_A 的响应返回。
servlet A 中的代码:
ServletContext context = getServletContext();
RequestDispatcher dispatcher = context.getRequestDispatcher("/servlet_B");
dispatcher.forward(request, response);
/*
How do I catch the response from servlet_B and convert it to a String?
*/
servlet B 中的代码:
/*
Some other code which creates a String
*/
String result = "someValue";
// Send the response to servlet_A.
response.setContentType("text/plain");
response.setContentLength(result.length());
PrintWriter out = response.getWriter();
out.println(result);
在 servlet_A 中,我需要将来自 servlet_B 的响应转换为一个简单的字符串值,这就是我坚持的一点。如何将来自 servlet_B 的响应作为 servlet_A 中的简单字符串处理?
我想我需要使用 PrintWriter 来解析响应,我已经在网上搜索了一个示例,但我能找到的只是展示如何使用 PrintWriter 发送响应或输出数据的示例屏幕。
如果有人能帮我解决这个问题,我将不胜感激。
【问题讨论】:
-
真的有必要拥有一个Servlet B吗?难道你不能使用一个简单的类来接收 HttpServletRequest 和 HttpServletRequest 作为参数,完成工作然后返回到 Servlet A?
-
您好 Diogo,感谢您的贡献。恐怕是这样。当 servlet_B 收到来自 servlet_A 的请求时,该请求被重定向到 jsp 以供用户输入,所以我一直坚持使用 servlet。
-
我的意思是:据我了解,您的 servlet B 存在只是因为您必须对请求和响应对象进行一些处理,然后返回到 servlet A,对吗?如果是这样,您可以将 servlet B 更改为可以为您完成工作的类,并且仅在您需要时才实例化它。
-
嗨,迪奥戈,再次感谢。如果只是处理数据的问题,我可以用一个普通的java类。但是,当请求到达 servlet_B 时,需要将请求重定向到 java 服务器页面以供用户输入,我想我需要一个 servlet……
-
我了解到您在处理数据后从 Servlet B 重定向到 A... 抱歉! (:
标签: java servlets response printwriter requestdispatcher