HttpservletRequest路径信息未正确设置

时间:2014-01-05 19:13:14

标签: java servlets

我为我的HttpservletRequest设置了Path INFO,如下所示。

request.setAttribute("javax.servlet.include.path_info", pathInfo);

在此语句之后,我试图获取pathinfo,但是返回null。

String info = request.getPathInfo();

info在这里null

我是否正确设置路径?

2 个答案:

答案 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