为了账号安全,请及时绑定邮箱和手机立即绑定

javaEE 静态文件处理问题

javaEE 静态文件处理问题

三国纷争 2019-03-30 11:32:24
我在web.xml里添加如下的配置,来过滤图片静态文件,如果出现404我怎么交给Spring来处理,也就是图片文件如果不存在,我就交给Spring来处理生成一个缩略图xmldefault/file/*
查看完整描述

2 回答

?
拉丁的传说

TA贡献1789条经验 获得超8个赞

这种方式行不通,首先不能先通过Servlet处理,失败后再转交给Spring
如果你把全部的/file/*都交给Servlet处理,那样即使404也无法通知到Spring
如果通过mvc:resources这种方式其实也无法处理404,静态资源404后同样没有通过Spring进行错误处理
不建议这样搞,如果真的是核心非常影响体验的业务,到一种可行但是比较挫的方法
这部分文件路径直接通过Spring或者Servlet处理,接收到文件名后如果找不到该文件,返回默认文件。
Spring实现
@ResponseBody
@RequestMapping(value="/file/{filename:.+}",method=RequestMethod.GET,produces=MediaType.IMAGE_JPEG_VALUE)
publicbyte[]testPhoto(@PathVariable("filename")Stringfilename)throwsIOException{
Filefile=newFile("/uploads/"+filename);
if(!file.exists()){//不存在就走默认
file=newFile("/uploads/default.jpg");
}
//下面的部分按自己想法实现
byte[]bytes=newbyte[(int)file.length()];
FileUtils.writeByteArrayToFile(file,bytes);
returnbytes;
}
我已经尽力了,看有人有更好的办法没有
                            
查看完整回答
反对 回复 2019-03-30
?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

这样不行,你考虑下。servlet和spring只能选其中之一来处理图片
                            
查看完整回答
反对 回复 2019-03-30
  • 2 回答
  • 0 关注
  • 374 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号