SpringBoot 获取request上下文

import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;

import javax.servlet.http.HttpServletRequest;


public class HttpContextUtils {

    public static HttpServletRequest getHttpServletRequest() {
        return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
    }

    public static String getDomain(){
        HttpServletRequest request = getHttpServletRequest();
        StringBuffer url = request.getRequestURL();
        return url.delete(url.length() - request.getRequestURI().length(), url.length()).toString();
    }


    public static String getHeader(String str){
        HttpServletRequest request = getHttpServletRequest();
        return request.getHeader(str);
    }

    /**
     * 为了防止CSRF的攻击,我们建议修改浏览器在发送POST请求的时候加上一个Origin字段,这个Origin字段主要是用来标识出最初请求是从哪里发起的。
     * 如果浏览器不能确定源在哪里,那么在发送的请求里面Origin字段的值就为空
     * @return
     */
    public static String getOrigin(){
        return getHeader("Origin");
    }

    /**
     * 获取来访者地址。
     * 只有通过链接访问当前页的时候,才能获取上一页的地址.
     * 走http协议时才有值
     * @return
     */
    public static String getReferer(){
        return getHeader("Referer");
    }

    /**
     * 获取系统信息
     * @return
     */
    public static String getUserAgent(){
        return getHeader("User-Agent");
    }
}

调用方法:

HttpContextUtils.getHttpServletRequest().getHeader(""")

猜你喜欢

转载自blog.csdn.net/qq_33715846/article/details/90203457
今日推荐