在 servlet 过滤器中排除特定的 URL

Exclude particular URL in servlet filter

如何从过滤器中排除 URL 的特定格式?

是否有标准方法或替代解决方案?

这无法通过 <url-pattern> 配置实现。

你基本上有 2 个选择:

  1. 使 <url-pattern> 更具体。例如。将所有真正需要过滤的资源移动到特定文件夹中,例如 /app,并将 <url-pattern> 设置为 /app/*。然后你可以把排除的页面放在那个文件夹之外。

  2. 检查过滤器中的请求 URI,如果它代表被排除的页面,则继续链。

    例如

    String loginURL = request.getContextPath() + "/login.jsp";
    
    if (request.getRequestURI().equals(loginURL)) {
        chain.doFilter(request, response);
    }
    else {
        // ...
    }