JavaEE中使用Filter来实现图片的防盗链-阿里云开发者社区

开发者社区> 开发与运维> 正文
登录阅读全文

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

简介: 一、防盗链图片的filter public class ImageRedirectFilter implements Filter { public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {   Htt

一、防盗链图片的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>
 <filter-name>imageRedirectFilter</filter-name>
 <url-pattern>/upload/images/*</url-pattern>
</filter-mapping>

 

原帖地址:http://blog.csdn.net/itm_hadf/article/details/7390180

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章
最新文章
相关文章