2012-02-27 2 views
0

웹 응용 프로그램이 있고 클래스의 정적 블록에서 폴더의 절대 경로 (예 : WEB-INF)를 가져와야합니다. 서블릿이 아닙니다. 물론이 값을 속성 파일에서 가져올 수는 있지만 그렇지 않으면 어떻게 할 수 있습니까?클래스의 정적 블록 내에서 폴더의 실제 경로를 얻는 방법

+1

"폴더의 실제 경로"란 무엇입니까? –

+1

속성 파일을 사용하는 이유가 있습니까? – DNA

답변

1

당신은 그것이 때문에이 같은 WEB-INF 폴더 이름을 얻을 수

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

처럼 파일 시스템의 실제 폴더를 찾기 위해 ServletContext를 ServletContext.getRealPath의 getRealPath() 메소드를 사용할 수 있습니다 하지 서블릿 컨텍스트의 노출 디렉토리에, 당신은이 같은 작업을 수행 할 수 있습니다 그것은

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

[편집] 당신이 request 객체를 해달라고 경우에, 당신은 ServletContextListener를 사용해야하고을 사용합니다메서드를 사용하여 ServletContext을 가져 와서 나중에 검색 할 수 있도록 응용 프로그램 범위에 경로를 저장합니다.

+0

정적 블록에서 인스턴스를 요청할 액세스 권한이 없습니다. –

+0

그런 다음 ServletContextListener를 사용하고 ServletContext를 가져 와서 나중에 검색 할 수 있도록 응용 프로그램 범위에 경로를 저장하기 위해 contextInitialized (ServletContextEvent sce) 메서드를 사용해야 할 수도 있습니다. –

+0

실제로 마지막 코멘트는 내가 필요한 것입니다. 당신이 답을하면 받아 들일 것입니다. –

관련 문제