국비학원 공부노트/JSP

[Java JSP] The method getRealPath(String) from the type ServletRequest is deprecated

hyeseo 2022. 2. 19. 23:35

[ 개발환경 ]

MacBook Air M1 2020년형 

eclipse [2021-3 var]

Java [zulu-8]

JSP

Tomcat [Apache Tomcat/9.0.58]

 

MacBook Air M1 // Java JSP로 파일 업로드 구현 중 해결한 걸 정리하는 목적으로 작성하는 글입니다..


 

주의 메세지: The method getRealPath(String) from the type ServletRequest is deprecated

 

▼ 수정 전 코드

 String path = request.getRealPath("/폴더명");

ServletContext에서 중복되어 더이상 사용되지 않기 때문입니다.

 

 

 

▼ 수정 후 코드 (2가지) 

 String path = request.getServletContext().getRealPath("/폴더명");

절대경로 : 최상위 디렉토리가 포함된 webapp 폴더까지의 경로입니다.

File IO를 사용하여 파일의 위치를 절대경로로 가져오는데

운영체제 별로 절대경로를 작성해야하고, 경로가 변경될 때마다 수정해야한다는 단점이 있습니다.

Mac 에서는 ("/폴더명"), Windows 에서는 ("\폴더명") 로 슬래시 방향을 다르게 해야합니다.

 

 

String path = request.getSession().getServletContext().getRealPath("폴더명");
String path = application.getRealPath("폴더명");

상대경로 : 현재 디렉토리(비교대상)기준으로 작성된 경로입니다.

절대경로의 단점을 해결하기 위해 'application'의 기본 객체를 이용해서 상대경로로 지정합니다.

("폴더명")으로 운영체제에 유연하게 경로를 설정할 수 있습니다.