java - 应用程序架构: request processing

标签 java multithreading jakarta-ee servlets architecture

我有以下问题:

我正在编写一个带有 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/

相关文章:

java - 如何在GWT中为BlurEvent正确添加UiHandler?

java - 如何使编辑文本适合两个按钮?

java - JMS - 失败时消息重新传递

java - Cassandra/Java 字符不匹配创建以 MD5 作为名称的表时出现异常

特殊字符的Java正则表达式

C#异步委托(delegate),线程调度

multithreading - 如果任何线程有异常,则导致 python 退出

c++ - Compute Shader 从多个线程组随机写入 RWStructuredBuffer

maven - maven依赖从哪里获取包?

jakarta-ee - 管理层与服务层