Java 使用Servlet过滤器覆盖查询字符串

Java 使用Servlet过滤器覆盖查询字符串,java,servlets,servlet-filters,Java,Servlets,Servlet Filters,我需要解密查询字符串。我计划通过Servlet过滤器和扩展HttpServletRequestWrapper来实现这一点,如下所示 @WebFilter(filterName = "urlDecryptionFilter", urlPatterns = {"/*"}) public class UrlDecryptionFilter implements Filter { static class FilteredRequest extends HttpServletRequestWra

我需要解密查询字符串。我计划通过Servlet过滤器和扩展HttpServletRequestWrapper来实现这一点,如下所示

@WebFilter(filterName = "urlDecryptionFilter", urlPatterns = {"/*"})
public class UrlDecryptionFilter implements Filter {
    static class FilteredRequest extends HttpServletRequestWrapper {
        public FilteredRequest(ServletRequest request) {
            super((HttpServletRequest)request);
        }

        public String getQueryString() {
            //here i put the logic to transform the existing string
            return "quertStr=modified";
        }
    }

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
    }

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        chain.doFilter(new FilteredRequest(request), response);
    }

    @Override
    public void destroy() {

    }
}

但这似乎不起作用。如果有人能指出正确的方向,我将不胜感激。

错误是什么?你能提供更多的信息吗?没有错误,但我没有看到被替换的查询字符串,它仍然有旧的。你能显示让你相信它不工作的代码吗?我指的是调用查询字符串的代码http:///request_uri?somequery_string,我希望是这样http:///request_uri?quertStr=modified 但事实并非如此。