这是我的 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<String> attributeNames = servletRequest.getAttributeNames();
while (attributeNames.hasMoreElements()) {
System.out.println("{attribute} " + servletRequest.getParameter(attributeNames.nextElement()));
}
final Enumeration<String> 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()
,但我没有得到任何标题。
问题
如何获取来自请求的所有标头?
原文由 daydreamer 发布,翻译遵循 CC BY-SA 4.0 许可协议
Typecast
ServletRequest
intoHttpServletRequest
(only ifServletRequest request
is aninstanceof
HttpServletRequest
).然后你可以使用
HttpServletRequest.getHeader()
和HttpServletRequest.getHeaderNames()
方法。像这样的东西: