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>
 <filter-name>imageRedirectFilter</filter-name>
 <url-pattern>/upload/images/*</url-pattern>
</filter-mapping>

 

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

目录
相关文章
|
30天前
|
Java
java通过commons-fileupload实现多张图片的上传(servlet)
java通过commons-fileupload实现多张图片的上传(servlet)
23 2
|
30天前
|
前端开发 Java
java通过commons-fileupload实现多张图片的上传(jsp页面)
java通过commons-fileupload实现多张图片的上传(jsp页面)
16 2
|
6月前
|
Java
【工具类】图片压缩工具类,可压缩jpg, png等图片
【工具类】图片压缩工具类,可压缩jpg, png等图片
76 0
|
3月前
javaWeb过滤器Filter(一)
javaWeb过滤器Filter(一)
|
3月前
javaWeb过滤器Filter(二)
javaWeb过滤器Filter(二)
|
8月前
|
XML 缓存 Java
JavaWeb-Filter过滤器
Filter过滤器 1. Filter的生命周期 2.Filter的配置 3.拦截路径 4.拦截具体的使用 5.拦截方式配置(资源被访问方式) 6.FilterChain拦截链
51 0
|
设计模式 监控 前端开发
【JavaWeb】Filter过滤器到底是什么
【JavaWeb】Filter过滤器到底是什么
【JavaWeb】Filter过滤器到底是什么
|
缓存 前端开发 JavaScript
JSP img元素无法显示本地图片的问题(二)_根源:spring访问静态资源
JSP img元素无法显示本地图片的问题(二)_根源:spring访问静态资源
241 0
JSP img元素无法显示本地图片的问题(二)_根源:spring访问静态资源
|
Java 数据安全/隐私保护
详解JavaWeb过滤器 Filter
1.过滤器概述 过滤器,顾名思义就是对事物进行过滤的,在Web中的过滤器,当然就是对请求进行过滤,我们使用过滤器,就可以对请求进行拦截,然后做相应的处理,实现许多特殊功能。如登录控制,权限管理,过滤敏感词汇等 要在Javaweb项目中使用过滤器,实现Java - Servlet - Filter接口即可: 以下是一个模板,需要实现三个方法:
79 0

热门文章

最新文章