Servlet 中的后台进程
是否可以在 servlet 中实现后台进程!?
让我解释一下。 我有一个 servlet,可以显示一些数据并生成一些报告。 报告的生成意味着数据已经存在,而且是这样的:其他人上传了这些数据。
除了生成报告之外,我还应该实现一种在新数据(已上传)到达时发送电子邮件的方法。
Is it possible to implement a background process in a servlet!?
Let me explain.
I have a servlet that shows some data and generate some reports.
The generation of the report implies that the data is already present, and it is this: someone else upload these data.
In addition to report generation, I should implement a way to send an email on arrival of new data (uploaded).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
功能需求尚不清楚,但要回答实际问题:是的,可以在 servletcontainer 中运行后台进程。
如果您想要应用程序范围的后台线程,请使用
ServletContextListener
来挂钩 webapp 的启动和关闭并使用
ExecutorService
来运行它。如果您尚未使用 Servlet 3.0,因此无法使用
@WebListener
,请在web.xml
中按如下方式注册:如果您想要一个会话范围的后台线程,使用
HttpSessionBindingListener
启动和停止它。在第一次创建和启动时,只需执行
The functional requirement is unclear, but to answer the actual question: yes, it's possible to run a background process in servletcontainer.
If you want an applicationwide background thread, use
ServletContextListener
to hook on webapp's startup and shutdown and useExecutorService
to run it.If you're not on Servlet 3.0 yet and thus can't use
@WebListener
, register it as follows inweb.xml
instead:If you want a sessionwide background thread, use
HttpSessionBindingListener
to start and stop it.On first creation and start, just do
谢谢你!我想知道这是否应该在请求范围内更好地完成,例如:
这样,当用户离开页面时,进程就会停止。
Thank you! I was wondering whether this should be better done inside of an request scope like:
This way, the process is stopped when the user leaves the page.