Java getpathtranslated返回null
我尝试实现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
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