1、FormContentFilter
默认情况下,只有GET,POST请求的参数可以通过调用request.getParamter()获取。FormContentFilter拦截器,可以使PUT,DELETE, PATCH请求的参数也适用于getParamter方法。
1.1 使用
相当于给Web应用添加拦截器。
1、配置FormContentFilter拦截器拦截DispatcherSerlvet。代码如下:
// 添加过滤器 FilterRegistration.Dynamic filterRegistration = servletContext.addFilter("formContentFilter", new FormContentFilter()); // 配置请求的分发类型 EnumSet<DispatcherType> dispatchers = EnumSet.of(DispatcherType.REQUEST, DispatcherType.ASYNC, DispatcherType.FORWARD,DispatcherType.INCLUDE); filterRegistration.addMappingForServletNames(dispatchers, true, "dispatcherServlet");
2、编写任意的PUT,DELETE请求验证即可
2、ForwardedHeaderFilter
引用原著中的定义:
ForwardedHeaderFilter is a Servlet filter that modifies the host, port, and scheme of the request, based on Forwarded headers, and then removes those headers
ForwardedHeaderFilter可以修改请求头中关于主机,端口,协议等信息。请求头中记录这些信息的属性有:
static { FORWARDED_HEADER_NAMES.add("Forwarded"); FORWARDED_HEADER_NAMES.add("X-Forwarded-Host"); FORWARDED_HEADER_NAMES.add("X-Forwarded-Port"); FORWARDED_HEADER_NAMES.add("X-Forwarded-Proto"); FORWARDED_HEADER_NAMES.add("X-Forwarded-Prefix"); FORWARDED_HEADER_NAMES.add("X-Forwarded-Ssl"); }
我对这些信息不了解,本处省略。