我有一个Web应用程序,我需要获取一个文件夹的绝对路径(在我的情况下,WEB-INF)在一个不是servlet的类的静态块中。当然,我可以从属性文件中获取此值,但我可以这样做吗?
答案 0 :(得分:1)
您可以使用ServletContext ServletContext.getRealPath的getRealPath()方法找出文件系统中的实际文件夹,如
String realPathOfImgFolder=req.getServletContext().getRealPath("/foldername");
您可能无法获得这样的WEB-INF文件夹名称,因为它不在servlet上下文的公开目录中,您可能需要为此执行此类操作
String rootPath=req.getServletContext().getRealPath("/");
File webInfFolder=new File(rootPath,"WEB-INF");
[编辑]如果您没有request
对象,则必须使用ServletContextListener
并使用其contextInitialized(ServletContextEvent sce)
方法获取ServletContext
并存储进入应用程序范围的路径,以便稍后检索它。