考虑一个基于前端 Controller 设计模式构建的网络应用程序,包括基于策略模式的操作、.jsp 页面、javabean 和数据库连接,如下图所示:
如何在我的代码中分配职责,以加载、初始化和更新应用程序范围内的数据?
我已经阅读了很多关于这个主题的文章,但是很难在所有特定于框架的和类似但又如此不同的问答之间找到我正在寻找的东西。
与 Android 不同,“java 网络应用程序生命周期”- 在谷歌上搜索,返回的是开发网络应用程序的过程,而不是运行它。我正在寻找对生命周期和网络应用程序责任管理的基本了解。
我已经有了一个提供程序类,它能够从我的数据库连接数据、获取数据并将数据分类到 Java 对象中。假设这是一个最佳实践解决方案,我应该在 Web 应用程序生命周期/代码中的哪个位置引用/创建此提供程序,并存储数据以供应用程序范围使用?
最佳答案
您应该在 ServletContextListener 上创建它,并将它存储在 ServletContext 上(或使用 Singleton)。 ServletContextListener 在应用程序启动时由 Web 容器调用。 ServletContext 是(除其他事项外)所有 session 的所有请求都可以访问的数据容器。
这是 JavaDoc:
http://docs.oracle.com/javaee/6/api/javax/servlet/ServletContextListener.html
这是一个教程;
http://www.mkyong.com/servlet/what-is-listener-servletcontextlistener-example/
关于java - Web 应用程序中的哪个元素应该负责加载应用程序范围的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22405181/