如何使用java了解webcontainer的路径?

时间:2011-05-23 13:24:05

标签: java file jsp servlets path

我需要使用java获取Web容器路径,有什么方法吗?我需要使用JSP或Servlet来获取文件路径。

3 个答案:

答案 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}}方法感兴趣。