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(""")