Java Servlet 절대 경로 구하기

java_path

Servlet이나 Spring을 이용하여 웹프로젝트를 진행하다 보면 문서이나 사진같은 파일을 업로드할 경우가 생깁니다.

C드라이브나 D같은 장치에 저장을 하면 상관이 없으나 부득이하게 프로젝트내의 Webcontent나 Spring 같은 경우는 Webapp에 저장하는 경우가 생깁니다.

이때 저장할 주소가 필요하게 되는데 이때 필요한 것이 프로젝트의 절대 경로 입니다.

이 경로를 추출하는 방법을 소개하겠습니다.

경로 구하기

일단 Servlet에서 프로젝트 경로를 구하는 메소드는 다음과 같습니다.

1. request.getSession().getServletContext().getRealPath("/") 
2. request.getRealPath("대상폴더")
3. this.getClass().getResource("대상폴더").getPath()
4. request.getContextPath()

이 메소드가 JAVA상에서 어떤 경로를 지칭하는지 보겠습니다.

java_path

다음과 같이 4개의 경로가 나왔습니다. 근데 주소가 다 똑같습니다.

그나마 괜찮은 2번을 복사해서 주소창에 넣어봤습니다.

java_path1

우선 해당 주소가 WenContent에 도달하는지 확인하기 위해 해당 폴더에 pic.jpg라는 그림을 넣어뒀습니다.

java_path2

유효하지 않은 주소라고 에러가 뜨네요 이래서는 프로젝트 상에서 사진을 넣어도 이클립스 카테고리에서 관리할 수 없습니다.

그래서 조금은 복잡하고 깔끔하진 않지만 저만의 경로를 만들어 보았습니다.

String url = this.getClass().getResource("").getPath(); 
url.substring(1,url.indexOf(".metadata"))+"Test/WebContent"

java_path3

웹서버를 돌려 테스트 해보니 다음과 같은 결과가 나왔습니다.

java_path4
역시 정상적으로 작동 되었으며 해당 폴더에 다른 파일을 넣어도 이클립스 상에서 확인까지 되었습니다.

JSP 페이지나 java 기능을 이용해서 이런식으로 절대경로를 구할 수 있습니다.


“Java Servlet 절대 경로 구하기” 에 하나의 답글

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.