我为我的HttpservletRequest设置了Path INFO,如下所示。
request.setAttribute("javax.servlet.include.path_info", pathInfo);
在此语句之后,我试图获取pathinfo,但是返回null。
String info = request.getPathInfo();
info在这里null
。
我是否正确设置路径?
答案 0 :(得分:2)
它不起作用。除属性外,HttpServletRequest对象是只读的。您可以做的是将请求对象替换为返回所需路径信息的包装请求对象。通常你会在Filter
中执行此操作,并将请求包装在HttpServletRequestWrapper
。
答案 1 :(得分:1)
第二部分是错误的。如果为servlet请求设置属性,则只能通过getAttribute
方法获取它。
所以如果你使用:
设置值 request.setAttribute("javax.servlet.include.path_info", pathInfo);
你可以使用以下方式获得该值:
request.getAttribute("javax.servlet.include.path_info");
现在request.getPathInfo()
在URI之后提供了额外的路径信息。在你的情况下,它将为null,因为在URI之后没有任何内容:
E.G - 如果您有网址= http://someHost.com/servletName?id=1234&name=fred
request.getPathInfo()
会返回 id = 1234 * name = fred