我有一个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
,并将路径存储到应用程序范围中,以便稍后检索。