contextPath는 웹 애플리케이션의 최상위 경로를 가리킨다.
톰캣(Tomcat) 같은 웹 서버에 배포할 때, 어떤 경로로 애플리케이션이 실행되는지를 나타낸다.
<c:set var="contextPath" value="${pageContext.request.contextPath}"/>
▶ ${pageContext.request.contextPath} 는 현재 웹 애플리케이션의 컨텍스트 경로(Context Path) 를 의미 한다.
✅ 1. 예제

✅ 2. 사용 예제
<c:set var="contextPath" value="${pageContext.request.contextPath}" />
<a href="${contextPath}/member/main.do">홈</a>
컨텍스트 경로가 /animal 이면?
<a href="/animal/member/main.do">홈</a>
컨텍스트 경로가 /shop 이면?
<a href="/shop/member/main.do">홈</a>
컨텍스트 경로가 / (ROOT) 라면?
<a href="/member/main.do">홈</a>
➡️ 유지보수를 쉽게 하기 위해!
웹 애플리케이션을 /animal → /shop 으로 변경해도 모든 링크를 수정할 필요가 없다.
하드코딩된 경로 대신 ${contextPath} 를 사용하면, 자동으로 바뀐다.
다른 JSP 파일에서도 ${contextPath} 를 그대로 사용할 수 있다.
1. JSP에서 직접 사용
<%= request.getContextPath() %>
2. JSTL로 설정해서 사용
<c:set var="contextPath" value="${pageContext.request.contextPath}" />
<a href="${contextPath}/member/main.do">홈</a>
3. JavaScript에서 사용
<script>
var contextPath = "<%= request.getContextPath() %>";
console.log("현재 컨텍스트 경로: " + contextPath);
</script>
컨텍스트 경로는 배포 시점에 결정되며, 톰캣(Tomcat) 설정에서 변경이 가능하다.
📌 1) server.xml에서 직접 설정
<Context path="/myapp" docBase="myapp" reloadable="true" />
▶ 이렇게 설정하면, 웹 애플리케이션의 기본 경로가 /myapp 이 된다.
📌 2) web.xml에서 설정
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
▶ 프로젝트의 web.xml 에서 컨텍스트 경로를 지정할 수도 있다.
🚀 결론
${pageContext.request.contextPath}는 웹 애플리케이션의 기본 URL 경로를 반환한다.
JSP에서 contextPath 를 활용하면 경로를 일괄적으로 관리할 수 있다.
유지보수가 쉬워지고, 배포 환경이 바뀌어도 자동으로 경로가 맞춰진다. 😃