2012-02-27 1 views
0

У меня есть веб-приложение, и мне нужно получить абсолютный путь к папке (в моем случае, WEB-INF) в статическом блоке класса, который это не сервлет. Конечно, я мог бы взять это значение из файла свойств, но могу ли я сделать это в противном случае?Как получить реальный путь к папке внутри статического блока класса

+1

Что вы подразумеваете под «настоящим путем в папке»? –

+1

У вас есть причина для _not_ использования файла свойств? – DNA

ответ

1

Вы можете использовать метод getRealPath() из ServletContext ServletContext.getRealPath выяснить фактическую папку в файловой системе, как

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

Вы не можете получить имя папки WEB-INF, как это потому, что она не в открытых каталогах контекста сервлета, вы, возможно, придется сделать что-то подобное для него

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

[EDIT] Если вы не имеете request объект, то вам придется использовать ServletContextListener и использовать его contextInitialized(ServletContextEvent sce), чтобы захватить ServletContext и сохранить путь в область приложения для его получения позже.

+0

У меня нет доступа к экземпляру запроса в статическом блоке. –

+0

Тогда вам, возможно, придется использовать 'ServletContextListener' и использовать свой метод' contextInitialized (ServletContextEvent sce) 'для захвата ServletContext и сохранения пути в область приложения для его получения позже. –

+0

На самом деле ваш последний комментарий - это то, что мне нужно. Если вы сделаете это как ответ, я приму это. –

Смежные вопросы