Servlet 过滤器:如何从 servletRequest 中获取所有的头信息?

9 浏览
0 Comments

Servlet 过滤器:如何从 servletRequest 中获取所有的头信息?

以下是我的WebFilter的样子:

@WebFilter("/rest/*")
public class AuthTokenValidatorFilter implements Filter {
    @Override
    public void init(final FilterConfig filterConfig) throws ServletException {
    }
    @Override
    public void doFilter(final ServletRequest servletRequest, final ServletResponse servletResponse, final FilterChain filterChain) throws IOException, ServletException {
        final Enumeration attributeNames = servletRequest.getAttributeNames();
        while (attributeNames.hasMoreElements()) {
            System.out.println("{attribute} " + servletRequest.getParameter(attributeNames.nextElement()));
        }
        final Enumeration parameterNames = servletRequest.getParameterNames();
        while (parameterNames.hasMoreElements()) {
            System.out.println("{parameter} " + servletRequest.getParameter(parameterNames.nextElement()));
        }
        filterChain.doFilter(servletRequest, servletResponse);
    }
    @Override
    public void destroy() {
    }
}

我尝试在线上找到如何获取来自请求的HTTP headers的值。

我没有找到任何相关信息,所以我试图枚举servletRequest.getAttributeNames()servletRequest.getParameterNames(),但是我没有获取到任何头部信息。

问题

如何获取来自请求的所有头部信息?

0