我们在编写代码的时候,有时候需要获取当前线程的request变量。本文简单介绍下,我目前已知的方式。
RequestContextHolder
RequestContextHolder类保存了 当前每一个线程的 RequestAttributes 变量,主要是通过 ThreadLocal来实现的。
RequestAttributes 变量有一个重要的实现类 ServletRequestAttributes,通过 ServletRequestAttributes 即可获取到当前线程的 request 信息。
HttpServletRequest request = ((ServletRequestAttributes)requestAttributes).getRequest();
HttpServletResponse response = ((ServletRequestAttributes)requestAttributes).getResponse();
方法参数
在controller的方法参数中添加 HttpServletRequest 变量即可。
1 | "/method") ( |
Autowire
还有更简单的方法: 自动注入
1 | "/path") ( |