后端——框架——视图层框架——spring_mvc——《官网》阅读笔记——第一章节28(过滤器,其他Filter)

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");
}

  我对这些信息不了解,本处省略。

原文地址:https://www.cnblogs.com/rain144576/p/12902959.html