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>
在上个版本发现了一点问题app
referer中在下载的时候,获取到的地址 资源的地址 or http:// +ip地址+ : +端口号+ / url
而后我修改了一下判断spa