Java 使用Servlet过滤器覆盖查询字符串
我需要解密查询字符串。我计划通过Servlet过滤器和扩展HttpServletRequestWrapper来实现这一点,如下所示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
@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 但事实并非如此。