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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。