如何获取类的静态块中文件夹的真实路径



我有一个web应用程序,我需要在一个不是servlet的类的静态块中获取文件夹(在我的情况下,为web-INF)的绝对路径。当然,我可以从属性文件中获取这个值,但我可以用其他方法吗?

您可以使用Servlet上下文Servlet上下文.getRealPath的getRealPath()方法来查找文件系统中的实际文件夹,如

String realPathOfImgFolder=req.getServletContext().getRealPath("/foldername");

您可能不会得到这样的WEB-INF文件夹名称,因为它不在servlet上下文的公开目录中,您可能必须为它做这样的操作

String rootPath=req.getServletContext().getRealPath("/");
File webInfFolder=new File(rootPath,"WEB-INF");

[EDIT]如果没有request对象,则必须使用ServletContextListener并使用其contextInitialized(ServletContextEvent sce)方法来获取ServletContext,并将路径存储到应用程序范围中,以便稍后检索。

最新更新