我有以下问题:
我正在编写一个带有 servlet 和 JSP 的 Web 应用程序,它应该查询单独的服务。 但查询需要很长时间 - 大约 30 秒。
我的应用程序的结构很简单 - Filter->Controller->jsp。我在想,如果在过滤器中我将请求发送到一个单独的线程中进行处理,同时 Controller 继续执行其工作,会怎么样。我该如何做才能使查询过程和 Controller 处理同时进行? + 我需要每 5 分钟更新一次查询(以便用户确实拥有相关信息)。做到这一点的最佳方法是什么?
最佳答案
使用 ServletContextListener 在 Web 应用程序启动时启动线程。
线程应将数据写入 ServletContext(例如通过 setAttribute())。
ServletContextListener 应在应用程序停止时终止线程。
Servlet 应该根据需要从 ServletContext 中读取数据。
关于java - 应用程序架构: request processing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10660797/