Java getpathtranslated返回null

Java getpathtranslated返回null,java,jakarta-ee,servlets,Java,Jakarta Ee,Servlets,我尝试实现getPathTranslated()方法,但总是返回null,这就是我使用的方法: import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet

我尝试实现getPathTranslated()方法,但总是返回null,这就是我使用的方法:

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class FileLocation extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //response.setContentType("text/html;charset=UTF-8");
        response.setContentType("text/plain");
        PrintWriter out = response.getWriter();

        if (request.getPathInfo() != null) {
            out.println("The file \"" + request.getPathInfo() + "\"");
            out.println("Is stored at \"" + request.getPathTranslated() + "\"");
        } else {
            out.println("Path info is null, no file to lookup");
        }
    }
}

如果您试图检索与URL路径对应的文件系统路径,请尝试
getServletContext().getRealPath(“您的路径”)

尝试这一行:

request.getRequestURI().substring(request.getContextPath().length())

在servlet容器无法确定getRealPath或getPathTranslated方法的有效文件路径的情况下,例如当Web应用程序从存档、在本地无法访问的远程文件系统或在数据库中执行时,这些方法必须返回null

getPathTranslated方法计算请求的pathInfo的实际路径

如果没有这种情况,请在部署描述符中检查Servlet映射

如果您遇到以下情况:

<url-pattern>*.xhtml</url-pattern>

希望它能帮助您从不同的角度分析问题。

然后getPathtranslated判断它是否有用?然后getPathtranslated判断它是否有用?
ContextPath: /myapp
ServletPath: /admin/mypage.xhtml
PathInfo: null