使用getResource方法时如何获取webApp位置?

时间:2013-04-18 20:01:12

标签: java java-ee servlets web-applications getresource

在我的servlet中:

protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 new Action();
}

在我的Action类中:

Action(){
    System.out.println("--> " + this.getClass().getResource("/").toString());
}

我有结果,这个位置:

- > file:/C:/Users/saad/Desktop/apache-tomcat-7.0.37/wtpwebapps/Serveur/WEB-INF/classes/

但是我想像这样访问我的webApp的根目录: file:/C:/Users/saad/Desktop/apache-tomcat-7.0.37/wtpwebapps/Serveur/

我坚持认为Action类不会从HttpServlet继承,所以我不能使用ServletContext.getResource(“”)。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

您可以使用ServletContext.getRealPath()方法获取Web资源的实际文件系统路径。

ServletContext ctx = request.getServletContext();
String path = ctx.getRealPath("/");

修改Action以将请求或servlet上下文作为参数:

public Action(ServletContext ctx) {
    System.out.println("--> " + ctx.getRealPath("/"));
}