RequestAttributes requestAttributes = RequestContextHolder.currentRequestAttributes();
ServletRequestAttributes attributes = (ServletRequestAttributes)requestAttributes;
HttpServletRequest request = attributes.getRequest();
理论上,以上方法可以了。但是启动项目的时候可能会报No thread-bound request found异常,在非web下访问了RequestContextHolder.currentRequestAttributes()导致
所以需要捕捉异常,启动后在web中就可以正常使用了
try{
RequestAttributes requestAttributes = RequestContextHolder.currentRequestAttributes();
ServletRequestAttributes attributes = (ServletRequestAttributes)requestAttributes;
HttpServletRequest request = attributes.getRequest();
}
2.还有一种方法,在controller的方法里传参HttpServletRequest ,在aop可以获取参数