spring aop中获取HttpServletRequest

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可以获取参数

你可能感兴趣的:(spring aop中获取HttpServletRequest)