最近在做课程设计遇到添加Filter后导致图片加载不上的问题,摸索到一个解决方法分享给大家。
图片的位置是:工程名/WebRoot/source/*.jpg
jsp的位置是:工程名/WebRoot/*.jsp
Filter的设置为:
checkAuthority
Filter.FilterForCheck
checkAuthority
/*
因为/*是过滤全部资源的,所以运行后导致source中的图片加载不上去。
我先是上网找解决方法,大多都是说把/*改为/*.jsp但是改完发布运行后,提示org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/myBBS]] 还有Invalid /*.jspin filter mapping,无法通过浏览器打开正常的jsp页面,这个意思好像系统不接受 /*.jsp的url-pattern配置。
后来(经过半小时的辛苦查找放弃了,感觉要靠自己解决了 0.0,为了防止跟我一样的同学遇到此类问题浪费自己的时间,特发此博客),自己摸索了一番发现图片的加载方式也像一般jsp加载到页面上。
说说解决方法吧:
在Filter/FilterForCheck.java(过滤器)中在加载它时给它放行,以下代码:
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IO