在java web应用程序中获取上下文路径
问题描述:
我正尝试在java web应用程序中获取项目上下文路径。在java web应用程序中获取上下文路径
我的工作室位于D:\ GED \ WSysGED,我想获得该路径。
我发现有两种方法可以使用这个指令。
String path= System.getProperty("user.dir");
System.out.println(path);
但代码返回d:\蚀-JEE-luna的-R-的win32 \蚀 即其中蚀可执行文件的位置。
的第二种方法是使用一个servlet
我创建的一个跟随此 tutorial
public class ContextPathServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
ServletContext servletContext = getServletContext();
String contextPath = servletContext.getRealPath("/");
PrintWriter out = response.getWriter();
out.println("<br/>File system context path (in TestServlet): " + contextPath);
}
}
但它示出C:\用户\涓\ SysGED.metadata.plugins \有机eclipse.wst.server.core \ tmp6 \ wtpwebapps \ WSysGED
什么是获得项目路径的正确方法?
在此先感谢您的时间和aswers。
答
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
String contextPath = request.getContextPath();
System.out.println(contextpath);
}
+0
请编辑更多信息。仅限代码和“尝试这个”的答案是不鼓励的,因为它们不包含可搜索的内容,也不解释为什么有人应该“尝试这个”。 – abarisone 2016-09-01 07:45:31
第二种方法是正确的。返回的路径是您的应用程序服务器的部署路径。 Java EE中不存在项目路径。 – home 2014-09-24 13:55:04
好的,你的答案,只是一件事。路径C:\ Users \ Juan \ SysGED.metadata.plugins \ org.eclipse.wst.server.core \ tmp6 \ wtpwebapps \ WSysGED 是静态的,或者部署有时会更改路径? @home – 2014-09-24 14:09:43
它会根据您的应用程序服务器而变化。请告诉我们为什么您需要访问该路径 - 其他解决方案可用? – home 2014-09-24 14:22:49