package com.fgkj.Filters; import java.io.IOException; import java.io.PrintWriter; import java.text.SimpleDateFormat; import java.util.Arrays; import java.util.Date; import java.util.HashSet; import java.util.Set; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.omg.CORBA.Request; import com.fgkj.actions.ActionUtil; public class CrossDomainLimitFilter implements Filter{ public static final int max_connect_count = 10; public final static String CROSS_DOMAIN_KEY = "44c4a294cb66d13727c14b065dbe8548"; //跨域请求 key public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException { HttpServletRequest request=(HttpServletRequest)req; HttpServletResponse response =(HttpServletResponse)resp; String URL=request.getRequestURI(); request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=utf-8"); //非跨域请求 isAlowCrossDomain(response,request); chain.doFilter(request, response); } public void init(FilterConfig arg0) throws ServletException { } public void destroy() { } /** * 允许跨域访问 * @param response */ public void isAlowCrossDomain(HttpServletResponse response,HttpServletRequest request){ // 设置允许多个域名请求 String[] allowDomains = {"http://localhost:8919","http://localhost:8080"}; Set allowOrigins = new HashSet(Arrays.asList(allowDomains)); // if (Arrays.asList(Constants.ALLOW_DOMAIN).contains(originHeader)) { String originHeads = request.getHeader("Origin"); if(allowOrigins.contains(originHeads)){ //设置允许跨域的配置 // 这里填写你允许进行跨域的主机ip(正式上线时可以动态配置具体允许的域名和IP) response.setHeader("Access-Control-Allow-Origin", originHeads); } /*String ip=request.getRemoteAddr(); //String originHeads = request.getHeader("Host"); String originHeads =ip+":8080"; System.out.println(originHeads);*/ response.setHeader("Access-Control-Allow-Origin", originHeads); //response.setHeader("Access-Control-Allow-Origin", "*"); //允许跨域访问 response.setHeader("Access-Control-Allow-Headers", "X-Requested-With,content-type,token"); response.setHeader("Access-Control-Allow-Methods", "GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS, PATCH"); response.setHeader("Access-Control-Allow-Credentials", "true"); } public static void main(String[] args) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.out.println(sdf.format(new Date())); } }