Back-end/JAVA & Spring

[Spring] 절대경로와 상대경로 ${pageContext.request.contextPath}

꼬바리 2021. 5. 3. 10:58

절대 경로

 

개념


최초의 시작점으로 경유한 경로를 전부 기입하는 방식

경로의 처음부터 마지막까지 완전히 적힌 경로
어떠한 웹페이지나 파일이 가지고 있는 고유한 경로

최상위 디렉토리가 반드시 포함된 경로

 

 

실전 예시


Browser

http://www.google.com

Windows

C:\chrome\chrome_shutdown_ms.txt

Linux

cd $CATALINA_HOME/bin/

 

윈도(Windows) 절대 경로

 

C:\chrome\


Spring 절대 경로

 

 

servlet-context.xml

<resources mapping="/resources/**" location="/resources/" />

JSP

<img alt="Cat pictures" src="/resources/img/cat01.jpg">

결과

 

 

상대 경로

 

개념


현재 위치한 곳을 기준으로 해서 목표로 하는 (파일이 있는 곳) 위치이다.
상대 경로는 항상 비교할 대상이 있어야 합니다. 결국 내가 어디있냐에 따라 경로가 달라지는 것! 

내 위치와 파일 경로를 비교하는 것! (상대평가처럼)

현재 디렉터리(비교 대상)를 기준으로 작성된 경로

 

 

실전 예시


예시 URL : http://localhost:8080/project 01/abc.jsp

 

 

Spring 상대 경로

 

servlet-context.xml

<resources mapping="/resources/**" location="/resources/" />

 

JSP

${pageContext.request.contextPath} : 내 현재 위치 ( EL(Expression Language) 사용 )

<img src="${pageContext.request.contextPath}/resources/img/cat01.png" />

결과

설명


 ${pageContext.request.contextPath} 사용함으로 써 상대 경로 즉, 내 위치에 따라 값이 변하던 게 고정이 된다.

정확히 말하면 고정이 아니라 알아서 위치를 찾아서 맞춰주는 겁니다. 

예를 들면 부모 폴더에 접근하려면 ../resources/img/cat01.png 이런 식으로 쓰고

소속 폴더에 접근하려면 ./resources/img/cat01.png 써야 하는 걸 알아서 맞춰주는 겁니다.

 

 

그 외 표현식

${pageContext.request.requestURL} : http://localhost:8080/project01/abc.jsp

${pageContext.request.scheme} : http 

${pageContext.request.serverName} : localhost 

${pageContext.request.serverPort} : 8080 

${pageContext.request.requestURI} : /project01/abc.jsp

${pageContext.request.servletPath} : /abc.jsp

 

 

Java

 

HttpServletRequest request

String root = request.getContextPath(); // return 프로젝트 Path

결과 : /project01

String uri = request.getRequestURI(); // return 프로젝트+파일경로

결과 : /project01/abc.jsp

String servlet = request.getServletPath(); // return 파일명

결과 : /abc.jsp

StringBuffer url = request.getRequestURL(); // return 전체 경로

결과 : http://localhost:8080/project01/abc.jsp

 

 

경로 표기법

 

상대 경로

. : 현재 웹페이지가 소속된 폴더
.. : 현재 웹페이지의 부모 폴더

 

절대 경로

 

/ : 루트(root)

./ : 현재 위치

../ : 현재 위치의 상단 폴더

 

728x90
반응형