java代码内如何在全局获取请求头

正常通SpringMVC或者SpringBoot框架进入后端,可以在方法上用ServletRequest接收,在方法内也可转换为HttpServletRequest来获取请求头中的各种值。
但是如果自定义了一些过滤器,各种方法传递,默认方法参数中并没有携带请求头,这个时候我们又需要用请求头中的一些值,那么可以通过RequestContextHolder.getRequestAttributes()获取

    /**
     * 全局中获取请求头中信息
     * @return
     */
    public static String getHeader() {
        ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
        if (null != requestAttributes) {
            HttpServletRequest request = requestAttributes.getRequest();
           return request;
        }
        return null;
    }

在请求头里,我们可以通过自定义的name获取指定的值,可以拿到session,可以拿到uri、url等等
在这里插入图片描述
在这里插入图片描述


版权声明:本文为weixin_45561263原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。