使用过滤器实现图片盗链
配置过滤器
<filter> <filter-name>ImgFilter</filter-name> <filter-class>com.itmayiedu.filter.ImgFilter</filter-class> </filter> <filter-mapping> <filter-name>ImgFilter</filter-name> <url-pattern>/static/*</url-pattern> </filter-mapping> |
public class ImgFilter implements Filter {
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("初始化...");
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
System.out.println("doFilter....");
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse res = (HttpServletResponse) response;
//获取请求头中来源
String referer = req.getHeader("referer");
//获取当前请求名称
String serverName = request.getServerName();
System.out.println("referer:"+referer+"----serverName:"+serverName+":"+serverName);
if(referer==null||(!referer.contains(serverName))){
req.getRequestDispatcher("/imgs/error.png").forward(req, res);
return ;
}
chain.doFilter(req, res);
}
public void destroy() {
}
}