赞
踩
相关类及接口
HttpServletRequestWrapper
- public class HttpServletRequestWrapper extends ServletRequestWrapper implements HttpServletRequest {
-
- ********
- 构造方法
-
- public HttpServletRequestWrapper(HttpServletRequest request) {
- super(request);
- }
-
- ********
- 相关方法
-
- public String getHeader(String name) {
- public Enumeration<String> getHeaders(String name) {
- public Enumeration<String> getHeaderNames() {
-
- public int getIntHeader(String name) {
- public long getDateHeader(String name) {

示例
***********************
filter 层
CustomHttpServletRequest:自定义请求类,添加相关方法
- public class CustomHttpServletRequest extends HttpServletRequestWrapper {
-
- private Map<String,String> headers=new HashMap<>();
-
- public CustomHttpServletRequest(HttpServletRequest request){
- super(request);
- }
-
- public void addHeader(String name,String value){
- headers.put(name, value);
- }
-
- @Override
- public String getHeader(String name) {
- String value=super.getHeader(name);
-
- if (headers.containsKey(name)){
- value=headers.get(name);
- }
-
- return value;
- }
-
- @Override
- public Enumeration<String> getHeaderNames() {
- List<String> names=Collections.list(super.getHeaderNames());
- names.addAll(headers.keySet());
-
- return Collections.enumeration(names);
- }
-
- @Override
- public Enumeration<String> getHeaders(String name) {
- List<String> list= Collections.list(super.getHeaders(name));
-
- if (headers.containsKey(name)){
- list.add(headers.get(name));
- }
-
- return Collections.enumeration(list);
- }
- }

CustomFilter:过滤器对请求添加header
- @Component
- public class CustomFilter implements Filter {
-
- @Override
- public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
- CustomHttpServletRequest request=new CustomHttpServletRequest((HttpServletRequest) servletRequest);
- request.addHeader("header","瓜田李下");
-
- filterChain.doFilter(request,servletResponse);
- }
- }
***********************
config 层
WebMvcConfig:注册拦截器,对指定的请求添加header
- @Configuration
- public class WebMvcConfig implements WebMvcConfigurer {
-
- @Resource
- private CustomFilter customFilter;
-
- @Bean
- public FilterRegistrationBean<CustomFilter> initFilterRegistrationBean(){
- FilterRegistrationBean<CustomFilter> registrationBean=new FilterRegistrationBean<>();
- registrationBean.setFilter(customFilter);
- registrationBean.addUrlPatterns("/hello");
- registrationBean.setOrder(0);
-
- return registrationBean;
- }
- }

***********************
controller 层
HelloController
- @RestController
- public class HelloController {
-
- @RequestMapping("/hello")
- public String hello4(HttpServletRequest request){
- String value=request.getHeader("header");
- if (value!=null){
- System.out.println(value);
- }
-
- return "hello world";
- }
- }
控制台输出
瓜田李下
说明:调用接口/hello, 拦截器拦截请求,添加请求头
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。