一、防盗链图片的filter
public class imageredirectfilter implements filter {
public void dofilter(servletrequest req, servletresponse res, filterchain chain) throws ioexception, servletexception {
httpservletrequest request = (httpservletrequest) req;
httpservletresponse response = (httpservletresponse) res;
// 禁止缓存
response.setheader("cache-control", "no-store");
response.setheader("pragrma", "no-cache");
response.setdateheader("expires", 0);
// 链接来源地址
string referer = request.getheader("referer");
system.out.println("refer is"+referer);
if (referer == null || !referer.contains(request.getservername())) {
// 如果链接地址来自其他网站,则返回错误图片
request.getrequestdispatcher("/error.gif").forward(request, response);
}
else {
//图片正常显示
chain.dofilter(request, response);
}
二、web.xml
<filter>
<filter-name>imageredirectfilter</filter-name>
<filter-class>com.filter.imageredirectfilter</filter-class>
</filter>
<filter-mapping>
<url-pattern>/upload/images/*</url-pattern>
</filter-mapping>
原帖地址:http://blog.csdn.net/itm_hadf/article/details/7390180