日期:2014-05-17  浏览次数:20991 次

拦截器问题,如何拦截静态资源文件的访问请求<img src="/images/***.jpg"/>?
原来项目中的所有资源文件比如图片、文件等在页面中都是直接指向服务器存放文件的实际路径例如:某个页面中的图片<img src="/images/user001photo.jpg"/>,其中在系统web根目录的images目录下确实有一个user001photo.jpg文件,
现在由于某种原因把所有的资源文件放到web目录外的地方管理,也就是说和web网站无关的目录(主要为方便备份,因为这些图片是用户传上来的)。
  现在我想不修改原来的路径,通过拦截器捕捉到这个资源访问后通过程序处理将相关的资源文件再输出(或者直接拷贝到"/images下)。
我使用如下方法,首先在web.xml中增加一个拦截器
<filter>
<filter-name>resFilter</filter-name>
<filter-class>interceptor.ResourceFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>resFilter</filter-name>
<url-pattern>/images/*</url-pattern>
</filter-mapping>

在拦截器类ResourceFilter的doFilter方法中拦截到访问后处理之。但是实际上并没有拦截到,我觉得我的url-pattern写法应该是没有问题的,为什么拦截不到"/images/user001photo.jpg"这个路径的访问呢?
环境:jdk1.6 tomcat6

------解决方案--------------------
拦截应该是没有问题的,...........
------解决方案--------------------
就你提供的信息来看,毫无问题
------解决方案--------------------
拦截器就是这么写额
------解决方案--------------------
拦截器写法没问题,建议你换个浏览器再试试