在我的Servlet过滤器代码中,我在HttpServletRequest对象中设置了一个属性:
request.setAttribute("testname", "name");
我知道,使用 RequestContextHolder ,我们可以从直接来自浏览器的请求中检索属性。但是我们可以使用RequestContextHolder.currentRequestAttributes检索我在请求中手动设置的上述属性:
RequestAttributes cr = RequestContextHolder.currentRequestAttributes();
if (null != cr) {
cr.getAttribute("testname",RequestAttributes.SCOPE_REQUEST);
}
答案 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);