想用Tomcat对输入的链接进行过滤,提取referer头,然后进行检查,用这种方式进行防盗链
具体的方法为:
在tomcat的conf中的server.xml中添加了  
<Valve className="org.apache.catalina.valves.RequestHeaderValve" header="Referer" deny="*.mydomain.com, *localhost*"/> 其中RequestHeaderValve是自己写的一个类:package org.apache.catalina.valves;import java.io.IOException;
import javax.servlet.ServletException;
import org.apache.catalina.connector.Request;
import org.apache.catalina.connector.Response;
public final class RequestHeaderValve extends RequestFilterValve{

private String header = "";

   public void invoke(Request request, Response response) throws IOException, ServletException {
  
  String headervalue = request.getRequest().getHeader(getHeader());
  System.out.println("$$$$$$$$$$$$$" + headervalue);
  String URI = request.getRequestURI();
  String referer = request.getHeader("referer");
  System.out.println("$$$$$$$$$$$$$" + referer);
  String sitePart = request.getServerName() + "/upload";
  System.out.println("1=======================" + URI + "--------------------------");
  System.out.println("12=======================" + sitePart + "--------------------------");
  if(URI.startsWith("/upload")){
      if(referer == null || !referer.startsWith("http://" + request.getServerName())){
      System.out.println("3+++++++++++++++++++This is NG!++++++++++++++++++++++++++");
  return;
  
  }else{
  System.out.println("4-------------------This is OK!--------------------------");
  }
  }else{
     }

  System.out.println("goout~");
  
  headervalue = headervalue != null ? headervalue : "";
  
  System.out.println("$$$$$$$$$$$$$" + headervalue);
  process(headervalue, request, response);
  
 }   public String getHeader() {
    return header;
  }   public void setHeader(String header) {
    this.header = header;
  }}运行是可以的,但是不管输入什么网址都进入不了网站,
请问invoke以后用什么方式可以正常返回,继续执行接下来的操作!在线等~~~