1

在我的 Servlet 过滤器代码中,我在 HttpServletRequest 对象中设置了一个属性:

request.setAttribute("testname", "name");

我知道,使用RequestContextHolder我们可以从直接来自浏览器的请求中检索属性。但是我们能否使用 RequestContextHolder.currentRequestAttributes 检索我在请求中手动设置的上述属性:

RequestAttributes cr = RequestContextHolder.currentRequestAttributes();
if (null != cr) {
 cr.getAttribute("testname",RequestAttributes.SCOPE_REQUEST);
}
4

3 回答 3

2

不确定我是否理解你的问题。

RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
HttpServletRequest request = ((ServletRequestAttributes) requestAttributes).getRequest();
request.getAttribute("testname");
于 2013-01-08T12:01:59.427 回答
1

是的,您可以使用RequestContextHolder检索任何手动设置的属性。
如果您在request.setAttribute("testname", "name")某处设置属性,则可以使用RequestContextHolder使用以下代码检索它:-

RequestContextHolder.getRequestAttributes().getAttribute("testname", RequestAttributes.SCOPE_REQUEST);
于 2019-02-28T12:21:58.193 回答
0
final HttpServletRequest currentRequest = ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest();
    String ProjectContext = currentRequest.getContextPath();

碰巧访问此页面以解决其他问题。

于 2017-10-16T21:25:46.533 回答