天天看点

JavaEE中使用Filter来实现图片的防盗链

一、防盗链图片的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