Web应用程序中的哪个元素应该负责加载应用程序数据?

时间:2014-03-14 12:36:15

标签: java jsp web-applications scoping front-controller

考虑一个由Front Controller设计模式构建的Web应用程序,包括基于策略模式的操作,.jsp页面,javabeans和数据库连接,如下图所示: enter image description here

如何在代码中分配职责,加载,初始化和更新应用程序数据?

我已经阅读了很多关于这个主题的内容,但很难找到我想要的内容,在所有特定框架之间,以及类似但又如此不同的Q& A之间。

与Android不同,谷歌的搜索引擎生命周期"谷歌上的搜索不同,它会回应开发网络应用程序的过程,而不是运行它。我正在寻找对Web应用程序中生命周期和责任管理的基本了解。

我已经有了一个能够从我的数据库连接,获取和排序数据到java对象的提供者类。假设这是一个最佳实践解决方案,我应该在web-app生命周期/代码中引用/创建此提供程序,并存储数据以供应用程序范围内使用?

1 个答案:

答案 0 :(得分:1)

您应该在ServletContextListener上创建它,并将其存储在ServletContext上(或使用Singleton)。应用程序启动时Web容器调用ServletContextListener。 ServletContext是(除其他外)一个容器,用于所有会话的所有请求都可以访问的数据。

这是JavaDoc:

http://docs.oracle.com/javaee/6/api/javax/servlet/ServletContextListener.html

这是一个教程;

http://www.mkyong.com/servlet/what-is-listener-servletcontextlistener-example/