web项目中quartz使用request获取指定的文件路径
1.如何在quartz里使用request获取指定的文件路径解决方案: a.使用servlet监听器,在容器启动的时候,获取ServletContext并将其放到SchedulerContext里,代码如下: public class QuartzListener implements ServletContextListener{ public void c
·
.如何在quartz里使用request获取指定的文件路径
a.使用servlet监听器,在容器启动的时候,获取ServletContext并将其放到SchedulerContext里,代码如下:
public class QuartzListener implements ServletContextListener{
public void contextDestroyed(ServletContextEvent arg0)
{
//TODO
}
public void contextInitialized(ServletContextEvent servletContextEvent)
{
Scheduler sched = new StdSchedulerFactory().getScheduler();
sched.getContext().put("servletContext", servletContextEvent.getServletContext());
.......
}
}
b.在job里获取ServletContext,然后通过ServletContext的API获取想要的值,以获取web目录的绝对路径为例:
public class FileDownload extends StatefulMethodInvokingJob
{
@Override
protected void executeInternal(JobExecutionContext context)
throws JobExecutionException
{
try
{
//从SchedulerContext获取此前监听器放入的ServletContext
ServletContext servletContext =(ServletContext)context.getScheduler().getContext().get("servletContext");
String dir=servletContext.getRealPath("static/downloadfiles");
......
} catch (Exception e)
{
e.printStackTrace();
}
}
}
别忘了配置监听,这个是基础就不再赘述了。
更多推荐
已为社区贡献1条内容
所有评论(0)