> Java > java지도 시간 > `ServletContext.getRealPath('/')`는 무엇을 하며, 최신 Java EE 애플리케이션에서 사용을 피해야 하는 이유는 무엇입니까?

`ServletContext.getRealPath('/')`는 무엇을 하며, 최신 Java EE 애플리케이션에서 사용을 피해야 하는 이유는 무엇입니까?

Patricia Arquette
풀어 주다: 2024-12-22 13:11:10
원래의
708명이 탐색했습니다.

What does `ServletContext.getRealPath(

servletcontext.getRealPath("/")는 무엇을 의미하며 언제 사용해야 하나요?

소개

Java 서블릿 애플리케이션에서는 ServletContext#getRealPath() 메소드는 상대 웹 컨텐츠 경로를 절대 디스크 파일 시스템 경로로 변환하는 데 사용됩니다. 지정된 경로는 파일이거나 웹 콘텐츠 내의 디렉터리일 수 있습니다. 그러나 이 방법은 주의해서 사용해야 하며 최신 Java EE 개발에서는 일반적으로 권장되지 않습니다.

getRealPath("/")

/ getRealPath("/")에서 웹 콘텐츠 디렉터리의 루트를 나타냅니다. 웹 애플리케이션의 web.xml 파일이 포함된 디렉터리에 대한 절대 파일 시스템 경로입니다. 예를 들어 다음 프로젝트 구조에서

YourWebProject/
    src/
    :
    web/
        META-INF/
        WEB-INF/
        index.jsp
        login.jsp
        :
로그인 후 복사

getRealPath("/")를 실행하면 /path/to/server/work와 같은 웹 디렉터리에 대한 파일 시스템 경로가 반환됩니다. /folder/some.war/web.

주의 및 제한 사항

getRealPath()는 특정 상황에서 유용할 수 있지만 몇 가지 제한 사항이 있으며 일반적으로 다음과 같은 이유로 권장되지 않습니다.

  • 쓰기는 허용되지 않습니다. 지속성: getRealPath()를 사용하여 작성된 파일에 대한 변경 사항은 WAR 재배포 중에 손실됩니다.
  • 확장 의존성: getRealPath()의 신뢰성은 WAR 파일 확장을 위한 서버 구성에 따라 달라집니다. WAR이 디스크 파일 시스템으로 확장되지 않으면 getRealPath()가 잘못된 경로 또는 null 경로를 반환할 수 있습니다.
  • 이식 가능한 사용 사례 없음: 일반적으로 getRealPath를 사용하는 것보다 더 이식 가능하고 신뢰할 수 있는 대안이 있습니다. ().

대체 getRealPath()

getRealPath()를 사용하는 대신 다음 대안을 고려하십시오.

  • ServletContext#getResourceAsStream()을 사용하여 웹 내의 리소스에 대한 InputStream을 얻습니다. content.
  • 사용 가능한 목록을 검색하려면 ServletContext#getResourcePaths()를 사용하세요. 리소스 경로.
  • 리소스에 대한 URL을 얻으려면 ServletContext#getResource()를 사용하세요.
  • 파일 업로드 또는 임시 파일 생성에 대해서는 아래 "참조" 링크를 참조하세요.

참고

  • [getResourceAsStream() 대 FileInputStream](https://stackoverflow.com/questions/4212943/resource-as-inputstream-in-java-best-practice)
  • [권장 방법 업로드된 파일을 서블릿에 저장 애플리케이션](https://stackoverflow.com/questions/5797716/recommended-way-to-save-uploaded-files-in-a-servlet-application)
  • [재배포 시 데이터를 유지하는 간단한 방법 자바 EE 7 웹 애플리케이션](https://stackoverflow.com/questions/11736935/simple-ways-to-keep-data-on-redeployment-of-java-ee-7-web-application)

위 내용은 `ServletContext.getRealPath('/')`는 무엇을 하며, 최신 Java EE 애플리케이션에서 사용을 피해야 하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿