如果后端需要对请求进行自定义配置,并转发,可实现Filter,并重写代理地址
@Order(2)
@WebFilter(filterName = "proxyFilter", urlPatterns = "/proxy/*")
public class ProxyFilter implements Filter {
private static final Logger log = LoggerFactory.getLogger(ProxyFilter.class);
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain) throws IOException, ServletException {
HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest;
String requestURL = httpServletRequest.getRequestURL().toString();
String realRequestUrl = getRealRequestUrl(requestURL);
log.info("ProxyFilter,请求地址:【{}】,代理地址:【{}】",
((HttpServletRequest) servletRequest).getRequestURI(),
realRequestUrl);
HttpServletResponse response = (HttpServletResponse) servletResponse;
response.sendRedirect(realRequestUrl);
}
/**
* 截取请求地址,并根据需要配置即可
* @param requestUrl
* @return
*/
private String getRealRequestUrl(String requestUrl) {
StringBuilder sb = new StringBuilder();
sb.append("www.baidu.com");
//根据需要拼写实际请求地址即可
return sb.toString();
}
@Override
public void destroy() {
}
}
TIPS : 如果@webFilter 中urlParttens 配置的路径无效,请看下篇
https://blog.csdn.net/weixin_41402056/article/details/116460883