java - 我应该使用什么设计模式来构建一个简单的报告系统

标签 java design-patterns servlets struts2

我正在为基于 Web 的报告系统开发 Java 应用程序。该应用程序当前使用 struts2 来处理某些报告,而使用基本 servlet 来处理其他报告。代码到处都是,我想让代码保持一些理智。

从外到内的工作流程如下:

  1. 用户点击导航中的链接获取报告
  2. 出现报告的搜索页面(包含与登录用户相关的 5 到 6 个字段)
  3. 用户选择参数
  4. 表单被提交到 Servlet/Struts2Controller
    • Servlet/Struts2Controller收集参数,基于某种逻辑,调用DAO,获取数据,并转发到下一页
  5. 根据参数显示最终报告

从上面来看,第 2 点对于所有报告来说基本上都是相同的。因此,我创建了一个 GenericSearchClass,其中包含显示某些报告的初始搜索页面所需的所有方法。

我的问题是:

  • 从提交表单到显示最终页面,我可以使用哪种模式?
  • 我应该使用模板方法,其中包含抽象类和具有自己的模板方法实现的具体类吗?
  • 如果是这样,我的模板方法应该是什么。对于此类问题是否有更好的模式?

最佳答案

您可以考虑在 struts 中使用 Model View Controller 模式 [我从谷歌搜索找到的教程http://www.vaannila.com/ ]

如果您有长时间运行的报告,我建议您在前端使用一些 AJAX 异步运行报告,以防止用户多次请求相同的长时间运行报告。需要半分钟以上才能填写的报告就属于这一类。

希望这有帮助。

关于java - 我应该使用什么设计模式来构建一个简单的报告系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10290463/

相关文章:

C# 抽象类,用于数组初始化

java - 使用特定 servlet 在页面加载时加载动态 .jsp 页面

java - 带有 map 集合的 LazyInitializationException

java - SimpleXML Java 添加类作为元素

java - Ajax 将请求发送到 Spring MVC

design-patterns - 用于开发在多个平台上运行的应用程序的软件架构

java - 什么java设计模式可以避免强制转换数据实体

java - TextView.setText(int) 导致应用崩溃

java - 如何知道 servlet 中的复选框是否被选中

java - UtF-8 格式在 tomcat 服务器的 servlet 中不起作用