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

标签 java jsp web-applications scoping front-controller

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

如何在我的代码中分配职责,以加载、初始化和更新应用程序范围内的数据?

我已经阅读了很多关于这个主题的文章,但是很难在所有特定于框架的和类似但又如此不同的问答之间找到我正在寻找的东西。

与 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/

相关文章:

java - 复制字符串中的元音并在中间添加一个字符串

java - 随机掷骰和一些数学结果不一致

java - 从 tomcat 服务器中的 webapp 调用 java 程序 - java 程序在 tomcat 服务器之外

java - 使用 java 扫描器解析文本文件

java - 在 Pig 中使用 UDF 时出现错误 1070

java - 在 Struts 2 中使用 ModelDriven

javascript - 我使用java Servlet,提交表单并发送JSON格式的数据后无法重定向到另一个页面

java - 如何在jsp页面上显示mysql数据库中的图像和文本

java - 抽象 Java 网格

javascript - 区分 iPad 和 .来自网络应用程序内部的 iPhone?