保存表单数据的Java设计模式

保存表单数据的Java设计模式,java,ajax,design-patterns,Java,Ajax,Design Patterns,我有一个jsp页面,其中有许多部分/类别用于填写硬件配置详细信息,每个部分/类别都有许多详细信息,可以通过在列表框中选择值或在文本框中输入数据来填写。用户可以填写某些部分的某些字段,并可以选择稍后填写其他部分。当用户下次登录以填写数据时,必须向其显示之前填写的各个章节/类别的数据。当前的设计是,当用户输入任何数据并转到下一个字段时,会发出一个ajax调用,以将输入的数据保存在DB中。因此,如果一个节中有10个字段,并且表单中有10个节,则会进行100个JDBC调用,如果用户希望编辑已输入的字段,

我有一个jsp页面,其中有许多部分/类别用于填写硬件配置详细信息,每个部分/类别都有许多详细信息,可以通过在列表框中选择值或在文本框中输入数据来填写。用户可以填写某些部分的某些字段,并可以选择稍后填写其他部分。当用户下次登录以填写数据时,必须向其显示之前填写的各个章节/类别的数据。当前的设计是,当用户输入任何数据并转到下一个字段时,会发出一个ajax调用,以将输入的数据保存在DB中。因此,如果一个节中有10个字段,并且表单中有10个节,则会进行100个JDBC调用,如果用户希望编辑已输入的字段,则会进行额外的JDBC调用。此外,节中的10个字段相互依赖,例如,如果第一个字段是“操作系统名称”,如果我选择“Windows”,则下一个字段“OS Version”应仅显示值“20002007 2008等”,下一个字段“OS Architecture”应仅显示Windows及其版本的相关值。这就是为什么每次用户在字段中输入值时都会进行JDBC调用的主要原因


需要您对此设计的建议,以使JDBC调用最少,并使当前设计更高效。谢谢

您可以看看J2EE。它将允许您封装用户配置的状态,并在整个应用程序中共享它。还可以通过缓存结果来帮助您处理这些昂贵的对象,并允许客户端遍历和从结果中选择项。

您可以从缓存下拉字段的值列表开始。您不必每次都询问数据库自上次显示窗体以来是否出现了新版本的Windows。除非您正在读取的对象具有较大的对象树(双向关系),否则JDBC调用不会太重。。。我不认为你们的方法有什么问题,缓存可能会处理大量的常量读取。谢谢!!!。在提出ContextObject模式之前,我更倾向于使用ValueObject模式。正如biziclop和j.con所建议的,缓存了许多下拉字段和常量读取,从而避免了不必要的JDBC调用。此外,数据获取基本上是单向的,如果在缓存中找不到数据,我不再害怕执行jDBC调用。谢谢大家。