Java版本的跨域解决方案

直接写一个filter,把授权域写进去就行了import javax.servlet.*; import javax.servlet.http.HttpServletResponse; import org.slf4j.Logger; import org.slf4j.Logger...

直接写一个filter,把授权域写进去就行了

import javax.servlet.*;
import javax.servlet.http.HttpServletResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.IOException;

public class CORSFilter implements Filter {
	private final static Logger log = LoggerFactory.getLogger(Filter.class);
	private String domain = null;

	@Override
	public void init(FilterConfig filterConfig) throws ServletException {
		this.domain = filterConfig.getInitParameter("Access-Control-Allow-Origin");
	}

	@Override
	public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
			throws IOException, ServletException {
		String domain = getDomain();
		if (domain == null) {
			domain = "www.hellojava.com";
		}
		HttpServletResponse httpResponse = (HttpServletResponse) servletResponse;
		httpResponse.addHeader("Access-Control-Allow-Origin", domain);
		long start=System.currentTimeMillis();
		filterChain.doFilter(servletRequest, servletResponse);
		long invocationTime=System.currentTimeMillis()-start;
		log.debug("filter层时间:"+invocationTime);
	}

	@Override
	public void destroy() {
		domain = null;
	}

	private String getDomain() {
		return this.domain;
	}

}


条评论

请先 登录 后评论
不写代码的码农
三叔

422 篇文章

作家榜 »

  1. 小编 文章
返回顶部
部分文章转自于网络,若有侵权请联系我们删除