public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
// TODO Auto-generated method stub
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse res = (HttpServletResponse) response;
//获取链接
String referer=req.getHeader("referer");
System.out.println(referer);
int duankou=request.getLocalPort();
//获取本电脑ip地址
String serverName=req.getServerName();
String ip="http://"+serverName+":"+duankou+"/";
if(referer==null||!referer.contains(serverName)||referer.contains("jiump4")||referer.equals(ip)){
req.getRequestDispatcher("/images/timg.jpg").forward(req, res);
return;
}
chain.doFilter(req, res);
}
<filter>
<filter-name>RefererFilter</filter-name>
<filter-class>com.enet.fileter.RefererFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>RefererFilter</filter-name>
<url-pattern>/jiump4/*</url-pattern>
</filter-mapping>
在上个版本发现了一点问题
referer中在下载的时候,获取到的地址 资源的地址 or http:// +ip地址+ : +端口号+ /
然后我修改了一下判断