我们都只到RequestContextHolder是Spring提供的可以获取HttpServletRequest的一个工具,于是我在工作中就自己封装了一个工具类如下
import ;
import ;
import ;
/**
* request上下文工具类
*
* @author
* @version 创建时间:2018年10月8日 下午2:48:22
*/
public class HttpContextUtils {
public static HttpServletRequest getHttpServletRequest() {
return ((ServletRequestAttributes) ()).getRequest();
}
public static String getDomain() {
HttpServletRequest request = getHttpServletRequest();
StringBuffer url = ();
return (() - ().length(), ()).toString();
}
public static String getOrigin() {
HttpServletRequest request = getHttpServletRequest();
return ("Origin");
}
}
但是在调用这个工具获取HttpServletRequest的时候报了空指针异常,经过排查是()获取到的ServletRequestAttributes为null
参照这两篇文章:
SpringMVC之RequestContextHolder分析
spring boot 如何配置RequestContextListener
最后在启动类中加入以下代码即可解决报空指针的问题
@Bean
public RequestContextListener requestContextListener(){
return new RequestContextListener();
}