在我的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(“”)。
我该怎么做?
答案 0 :(得分:1)
您可以使用ServletContext.getRealPath()
方法获取Web资源的实际文件系统路径。
ServletContext ctx = request.getServletContext();
String path = ctx.getRealPath("/");
修改Action
以将请求或servlet上下文作为参数:
public Action(ServletContext ctx) {
System.out.println("--> " + ctx.getRealPath("/"));
}