Filter过滤器问题,大伙来看看

发布于 2021-11-29 14:39:55 字数 191 浏览 730 评论 10

先说说情况,我的一个网站,因为很多壁纸,然后壁纸又要生成不同的分辩率,因为图片很多,不可能每一张都把所有分辩率都生成出来的,所以我就写了一个Filter过滤器,用户访问时就生成他所需要的分辩率,可是问题就在这里了,当用户访问一个不存在的图片时,我就在Filter里生成,然后重定向给用户,图片是生成了,可是用户访问还是404 ,然后刷新一下就正常了,请问这个怎么搞定。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(10

狠疯拽 2021-11-30 12:16:22

那怎么办呢,生成图片java不是强功啊,占用内存大,只能用其它的程序去生成的

永不分离 2021-11-30 12:15:55

java调用cmd命令是开启了一个新的进程的。你是有个返回结果,不能代表你的进程已经执行完毕!!

你的这个方法是在不可取。无法保证实时性。

残花月 2021-11-30 12:15:47

引用来自#8楼“joliny”的帖子

那你还是别用cmd调用命令去生成了,还是用java代码直接生成吧。应为用cmd调用命令会产生一个新的进程,无法保证它的时间。也就会发生你现在的问题。

2021-11-30 12:15:43

那你还是别用cmd调用命令去生成了,还是用java代码直接生成吧。因为用cmd调用命令会产生一个新的进程,无法保证它在你有效的时间内完成。也就会发生你现在的问题。

你这样的做法其实就是采用了异步的方式来生成图片了。你怎么可以要求它有实时的效果呢????

 

可以用jmagick调用imagemagick来生成图片。效率还是很高的。比起用java来生成图片要好很多。

网名女生简单气质 2021-11-30 12:15:05

引用来自#6楼“joliny”的帖子

你图片生成完了之后强行flush一次。

然后在看看,感觉是还没有写入到磁盘就开始通过webserver进行访问了。

酒几许 2021-11-30 12:14:00

你图片生成完了之后强行flush一次。

然后在看看,感觉是还没有写入到磁盘就开始通过webserver进行访问了。

挽清梦 2021-11-30 12:08:26

我查看了一下,当我访问不存在的图片时,Filter就生成相关图片,用file检察文件生成成功了,可是自己打开文件夹看文件还没出来,好像要等下下文件才出来,所以重定向就是404,我就是不明白的是file可以检察到文件存在了,但是没出来,这是为什么

鹤舞 2021-11-30 12:02:07

还是不行啊,大哥

狠疯拽 2021-11-30 10:44:25
response.setHeader("Cache-Control","must-revalidate, no-cache, private");
response.setHeader("Pragma","no-cache");
response.setHeader("Expires", "Sun, 1 Jan 2000 01:00:00 GMT");
可是我不能没有你 2021-11-30 07:18:41

每次访问不存在的图片,都要刷新一下才正常

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文