[JSP] 절대경로와 상대경로
- Web/JSP
- 2021. 5. 14.
JSP의 절대 경로와 상대 경로
목차
절대 경로와 상대 경로의 정의
절대 경로는 처음부터 시작하여 목적지까지의 절대적인 경로를 의미합니다. 시작 지점부터 목표지점까지의 어느 누가 봐도 절대적으로 이곳을 가리킬 수 있는 곳입니다. 특징은 최상위 /를 포함하고 있습니다.
상대 경로는 현재 위치를 기준으로 하여 목적지까지의 상대적인 경로를 의미합니다. 자신보다 앞에 있는가? 뒤에 있는가? 동서남북으로 어느 방향으로 가야 하는가? 등, 누가 어디서 시작하느냐에 따라서 도착지가 달라질 수가 있습니다. 특징은 최상위 /를 거치지 않고도 이동이 가능합니다.
절대 경로와 상대 경로의 차이
절대경로 | 상대경로 | |
컴파일 속도 | 느리다 | 빠르다 |
해당 소싀의 위치 변환 시 | 경로를 다시 지정 | 기준이 된 폴더의 구성이 달라지지 않는 한 경로지정을 할 필요가 없다. |
분실 가능성 | 낮다 | 높다 |
사용할 때 | 타 개발자의 소스 링크시 | 개발팀 내에서 소스 링크 시 |
절대 경로와 상대 경로 구분해야 하는 이유
대표적인 구분법은 url을 보시면 되겠습니다.
1번의 jsp 경로
2번의 jsp 경로
둘의 차이점은 디렉터리의 차이에 있습니다. 이제 이렇게 구분이 된다면 url의 차이가 발생됩니다. 만약 이 상황이 되었을 때, 해당 jsp의 밖에 있는 javascript 혹은 css를 불러올 경우 경로의 차이점이 발생됩니다.
우리는 이 표시되는 URL로 JS, CSS, IMAGE가 어디 있는지를 찾으시면 됩니다.
이를 찾기 위해서는 우리는 상대경로와 절대 경로 둘 중 하나를 선택해서 대상을 불러와야 합니다.
상대경로
기호 | 기능 |
./ | 현재 위치 |
../ | 현재 기준, 상위 디렉토리 위치 |
./mollang/ | 현재 기준, 하부 mollang 디렉토리 위치 |
상대 경로는 현재 위치를 가장 중요하게 여깁니다.
그래서 가장 중요한 Point는 바로./ 이 부분입니다.
/ 앞에. 이 붙어 있어서 현재의 위치에 대한 정보를 나타냅니다.
우리는 이. 하나만으로 경로를 구분 짓고, 아무런 문제 없이 파일을 불러올 수 있습니다.
대표적인 예시 하나를 두겠습니다.
<link rel="stylesheet" href="./css/layout.css" type="text/css" media="all"/>
현재 위치를 기준으로 css디렉터리 안의 layout.css를 불러옵니다. 경로의 제일 앞에.으로 구분되는 것을 확인할 수 있습니다.
절대 경로
대표적인 방법은 / 이 있습니다.
url의 구성은 다음과 같습니다.
IP1.IP2.IP3.IP4(localhost):포트번호/프로젝트명/경로명
여기서 /란, 포트 다음의 /를 나타냅니다.
/은 포트 다음의 폴더 경로를 의미합니다. 만약 Path에 프로젝트명이 존재할 경우 /의 기능이 상실하게 되므로 주의하셔야 합니다.
이유는 /에는 프로젝트의 경로명이 포함되어있지 않기 때문입니다.
만약, 여기서 나는 프로젝트 명도 입력하고 싶다. 또는 그에 상관하고 싶지 않다 하고 싶은 분께서는 아래의 코드를 경로에 추가적으로 입력해주셔야 합니다.
${pageContext.request.contextPath}/
pageContext.request.contextPath는 프로젝트 경로명을 담고 있습니다. 우리가 프로젝트 명을 무엇을 하든 간에 반드시 절대 경로로 지정해주는 역할을 도와주게 됩니다.
사용하는 방법입니다.
<script type="text/javascript" src="${pageContext.request.contextPath}/js/chart/Chart.js"></script>
코드가 상당히 길어지는 단점이 존재하지만, 타인이 경로로 인해 고생하는 일은 사라지게 됩니다.
마무리
상대 경로와 절대 경로는 개발할 때가 아닌, 프로젝트의 import 할 때 중요한 요소로 자리 잡습니다.
아무래도 경로의 문제로 css가 깨지고 js가 깨지고 servlet이 깨진다면 그만큼 마음 아픈 일이 없을 겁니다.
그래서 우리는 해당 프로젝트가 상대 경로인지 절대 경로인지 구분을 할 수 있어야 하며, 경로 문제로 인한 404에 대한 스트레스를 최소화하고자 글을 작성하게 되었습니다.
'Web > JSP' 카테고리의 다른 글
[JSP] Controller의 완성 (3) | 2021.05.18 |
---|---|
[JSP] Servlet이란? (0) | 2021.05.17 |
[JSP] WEB.XML은 무엇일까? (0) | 2021.05.13 |
JSTL, JSP를 사용하는 사람이라면 알아야 할 것 (2) | 2021.05.02 |
[JSP] JSP 빈즈 (0) | 2020.08.28 |