sam*_*aur 128
Spring 通过类型的包装器对象公开当前HttpServletRequest对象(以及当前HttpSession对象).此包装器对象绑定到ThreadLocal,并通过调用该方法获得.ServletRequestAttributesstaticRequestContextHolder.currentRequestAttributes()
ServletRequestAttributes提供getRequest()获取当前请求的方法,获取getSession()当前会话和其他方法以获取存储在两个范围中的属性.以下代码虽然有点难看,但应该在应用程序的任何位置获取当前请求对象:
HttpServletRequest curRequest =
((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes())
.getRequest();
Run Code Online (Sandbox Code Playgroud)
请注意,该RequestContextHolder.currentRequestAttributes()方法返回一个接口,需要进行类型转换才能ServletRequestAttributes实现接口.
Spring Javadoc: RequestContextHolder | ServletRequestAttributes
ska*_*man 106
请求范围的bean可以与请求对象一起自动装配.
private @Autowired HttpServletRequest request;
Run Code Online (Sandbox Code Playgroud)
正如此处建议的,您还可以注入HttpServletRequest作为方法参数,例如:
public MyResponseObject myApiMethod(HttpServletRequest request, ...) {
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
99247 次 |
| 最近记录: |