我需要使用java获取Web容器路径,有什么方法吗?我需要使用JSP或Servlet来获取文件路径。
答案 0 :(得分:2)
我需要使用JSP或Servlet来获取文件路径。
那么文件存储在WAR的公共webcontent中?使用ServletContext#getRealPath()
。
String relativeWebPath = "/file.jpg";
String absoluteDiskPath = getServletContext().getRealPath(relativeWebPath);
File file = new File(absoluteDiskPath);
InputStream input = new FileInputStream(file); // I guess this is what you want.
// ...
请注意,这仅适用于容器扩展WAR的情况。否则,如果您 想要的所有内容都是InputStream
,请更好地使用ServletContext#getResourceAsStream()
。
String relativeWebPath = "/file.jpg";
InputStream input = getServletContext().getResourceAsStream(relativeWebPath);
// ...
答案 1 :(得分:1)
您可能正在寻找HttpServletRequest#getContextPath()
:
返回请求URI的一部分,指示请求的上下文。上下文路径始终位于请求URI中。路径以“/”字符开头,但不以“/”字符结尾。对于默认(根)上下文中的servlet,此方法返回“”。容器不会解码此字符串。
...或getServletPath()
:
返回此请求调用servlet的URL的一部分。此路径以“/”字符开头,包括servlet名称或servlet的路径,但不包含任何额外的路径信息或查询字符串。与CGI变量SCRIPT_NAME的值相同。
答案 2 :(得分:0)
您对HttpServletRequest
的{{3}}方法感兴趣。