java - 在 ServletRequest 到达 Servlet/Filter 后从中删除查询字符串

标签 java servlets filter query-string

现在假设我触发一些 URL 说

http://shoaib:8080/userAuthentication?authenticate=false

现在到了Filter的doFilter方法

public void doFilter(request,response,filterChain){

   boolean authenticate=request.getParameter("authenticate");
   .
   .   //some logic
   .
   .
   filterChain.doFilter(request,response); //this request should not have query String.

} 

将传递给 filterChain 的 doFilter() 的请求不应该有 queryString。我怎样才能做到这一点?

最佳答案

我在考虑覆盖 Filter 方法:

@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) 
    throws ServletException, IOException {
    HttpServletRequest request = (HttpServletRequest) req;
    String requestURI = request.getRequestURI();

    if (requestURI.startsWith(YOUR_CHECK_PATH)) {
       String url = ((HttpServletRequest)request).getRequestURL().toString();
       String queryString = ((HttpServletRequest)request).getQueryString();
        req.getRequestDispatcher(url).forward(req, res);
    } else {
        chain.doFilter(req, res);
    }
}

关于java - 在 ServletRequest 到达 Servlet/Filter 后从中删除查询字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22499516/

相关文章:

根据另一列删除一列中的重复项

具有模式 "MM/DD/yyyy"的 Java SimpleDateFormat 产生意外的日期值

java - 如何在 Logback 中以编程方式滚动日志文件

java - 防止 HttpServletResponse OutputStream 在获取/发布/服务后关闭 (Polarion)

java - 如何让 Jetty 返回错误响应而不是假设 HTTP/0.9 请求?

java - 基于 Web 的应用程序设计模式

java - Java 中的 Process.exitValue()

java - 如何在抽象类抽象方法上强制子方法的私有(private)可见性?

python - 如何过滤 Django 对象以接受匹配项和 NULL?

php - FILTER_FLAG_STRIP_LOW **AND** FILTER_FLAG_STRIP_HIGH