从RequestContextHolder.currentRequestAttributes检索手动设置的请求属性

时间:2013-01-08 11:53:58

标签: spring httprequest

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

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

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

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

3 个答案:

答案 0 :(得分:2)

不确定我理解你的问题。

RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
HttpServletRequest request = ((ServletRequestAttributes) requestAttributes).getRequest();
request.getAttribute("testname");

答案 1 :(得分:0)

final HttpServletRequest currentRequest = ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest();
    String ProjectContext = currentRequest.getContextPath();

发生了一些其他问题,请访问此页面。

答案 2 :(得分:0)

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

RequestContextHolder.getRequestAttributes().getAttribute("testname", RequestAttributes.SCOPE_REQUEST);