@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest)request;
//若使用 req.getRequestURI() 会报错 404
String servletPath = req.getServletPath();
if (StringUtils.isNotBlank(servletPath)) {
//替换接口
log.info("sourceUrl : {}", servletPath);
String targetUrl = servletPath.replaceFirst("/api", "/inner");
log.info("targetUrl : {}", targetUrl);
req.getRequestDispatcher(newUrl).forward(request, response);
// 重定向之后不能再将请求转发给过滤器链下一个filter,否则会抛异常
return;
}
filterChain.doFilter(request, response);
}
Filter 过滤器拦截修改 Url并且重定向使用request.getRequestDispatcher().forward(request, response) 404
最新推荐文章于 2023-12-18 19:14:10 发布