【发布时间】:2015-03-11 15:19:06
【问题描述】:
我正在编写一个扩展 HttpServlet 的 java 类,从而覆盖 doPost() 方法。在 doPost() 方法中,组装了一些数据对象,但我不确定返回数据的更好方法是什么。例如,
public class FormSubmission extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// http request is parsed to assemble an object, e.g., a List
List L = parseRequest(request);
// Question: how to return List L for use by Server?
}
}
我能想到的一种方法是将静态变量声明为
Public static List L;
并调用FormSubmission.L,这基本上使 List L 成为全局变量。
另一种方法是将数据字节写入文件,以便以后可以将其读回列表。
但是有没有更好的方法来处理这种情况?
基于评论的用例:
在首页“index.html”中创建了两个带有HTTP/POST的表单,表单A和B。要求用户先提交表单A,然后提交表单B。提交表单A触发上述doPost() 方法,从而构造 List L。该方案是如何使此列表可用于处理表单 B 提交。具体来说,如何让 Form B 的 doPost() 方法能够访问从 A 创建的 List L前一阶段。
【问题讨论】:
-
您的用例是什么?哪些类会使用该列表?用于显示目的的业务服务或 JSP?
-
基本上,我创建了两个表单,表单A和B。如果我提交表单A,就会调用上面的doPost()方法并构造List L。然后如果我点击提交表单B,目标是表单B的doPost()方法能够拉入从表单A创建的列表L。所以我的麻烦是如何将A的doPost()中的值传递给B使用.
-
表单是否提交到同一个 FormSubmission servlet?
-
不,他们将使用两个不同的 servlet 类,每个类都有自己的 doPost() 方法。