gpt4 book ai didi

java - 如何在 QuartzJobBean 的子类中获取 Session/Request 对象

转载 作者:行者123 更新时间:2023-12-02 07:40:46 26 4
gpt4 key购买 nike

我正在实现 cron 作业计划,以在 Web 应用程序中定期发送带有附件的电子邮件。

问题描述:为了在java代码中创建一个文件(将附加在邮件中),我需要 session 对象来获取文件的绝对路径。

例如:

request.getSession().getServletContext().getRealPath("/");

我们用来获取路径。

那么我如何实现/获取 session 对象?或者还有其他方法获取文件的相对路径吗?

注意:我需要在 WebContent/MyFolder 中创建 Attachmnet 文件。

最佳答案

您无法获取 HTTP session ,因为 cron 作业中没有 HTTP session 。该作业是异步的,它在自己的线程中运行,与 session 没有任何关系。即使没有用户连接到您的服务器,它也会运行。

所以,你的问题实际上是如何获取文件的路径。

答案就在你的问题中。注意getServletContext()。您可以从 servlet 中提取 servlet 上下文:servlet.getServletConfig().getServletContext()。因此,如果您的应用程序中至少有一个 servlet,您可以将您的 servlet 上下文(或从中提取的更好的文件路径)放入静态变量或系统属性,然后在您的 cron 作业中使用它。

关于java - 如何在 QuartzJobBean 的子类中获取 Session/Request 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11634741/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com