From 1b287e3595080dd572e3affe3b00a1e35f3aba90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AB=98=E9=93=81?= Date: Mon, 6 Apr 2020 22:55:48 +0800 Subject: [PATCH] add StatViewFilter initial code (not complete) --- .../druid/support/http/StatViewFilter.java | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/alibaba/druid/support/http/StatViewFilter.java b/src/main/java/com/alibaba/druid/support/http/StatViewFilter.java index 6bab644fc3..8d1cfe75f4 100644 --- a/src/main/java/com/alibaba/druid/support/http/StatViewFilter.java +++ b/src/main/java/com/alibaba/druid/support/http/StatViewFilter.java @@ -20,20 +20,34 @@ import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; +import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; public class StatViewFilter implements Filter { - @Override - public void init(FilterConfig filterConfig) throws ServletException { + public final static String PARAM_NAME_PATH = "path"; + private String path = "/druid"; + @Override + public void init(FilterConfig config) throws ServletException { + String path = config.getInitParameter(PARAM_NAME_PATH); + if (path != null && !path.isEmpty()) { + this.path = path; + } } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { - request.getRequestDispatcher(((HttpServletRequest) request).getServletPath()).forward(request, response); + HttpServletRequest httpReq = (HttpServletRequest) request; + String uri = httpReq.getRequestURI(); + if (uri.startsWith(path)) { + RequestDispatcher dispatcher = request.getRequestDispatcher(httpReq.getServletPath()); + dispatcher.forward(request, response); + } else { + chain.doFilter(request, response); + } } @Override