[TIL] JSP에서 정적 리소스 서빙
in TIL on Til, Javascript Last modified at:
2025-03-13 TIL
📝 TIL (Today I Learned)
🔗 원본 이슈: #27
📅 작성일: 2025-03-13
🔄 최종 수정: 2025년 04월 08일
🍀 새롭게 배운 것
- JSP에서 정적 리소스 서빙할때 알아야 할 것이 정확히 무엇이 있는지 알아보았다.
📄 JSP (Java Server Pages)
- HTML + Java 코드 혼합으로 동적 웹 페이지를 생성하는 기술.
- 백엔드에서 view(화면) 역할을 할 때 사용됨.
- 최근에는 Thymeleaf 같은 템플릿 엔진으로 대체되기도 하지만, JSP는 여전히 많은 레거시 시스템에서 사용 중.
🖼️ 정적 리소스 서빙 (Serving Static Resources)
✅ 정적 리소스란?
- 서버에서 별도 처리 없이 그대로 내려주는 파일들
👉 이미지, CSS, JavaScript, 폰트 등
✅ JSP에서 정적 리소스를 서빙할 때 알아야 할 점
위치
- 일반적으로
/webapp
또는/resources
하위에 위치 - 예:
/webapp └── /css └── /js └── /images
- 일반적으로
접근 경로
- JSP에서 링크를 걸 때는 절대 경로 or 상대 경로를 정확히 써야 함.
- 예:
<link rel="stylesheet" href="${pageContext.request.contextPath}/css/style.css" /> <script src="${pageContext.request.contextPath}/js/script.js"></script>
web.xml 설정 (보통 기본적으로 설정되어 있지만 알아두면 좋음)
<servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>/resources/*</url-pattern> </servlet-mapping>
서블릿이 아닌 파일은 직접 서빙됨
- JSP 같은 동적 리소스는 Servlet에서 처리
- 정적 리소스는 ServletContainer(Tomcat 등)가 자동으로 처리
⚠️ 주의할 점
- 정적 리소스를 JSP 내부에 두지 말기
- 예:
WEB-INF/views
안에 넣으면 브라우저에서 접근 못 함 (보안상 보호된 경로임)
- 예:
- 브라우저 캐싱 문제 있을 수 있음 → 버전 넘버링 (
style.css?v=1.0
) 같은 기법 사용
📌 요약
항목 | 설명 |
---|---|
정적 리소스 | 서버에서 처리 없이 그대로 전달하는 파일 (JS, CSS, 이미지 등) |
저장 위치 | 보통 webapp 폴더 내 /css , /js , /images 등 폴더 |
접근 방법 | ${pageContext.request.contextPath}/css/style.css 형식으로 경로 지정 |
서빙 주체 | Tomcat 같은 WAS(Web Application Server)가 자동 서빙 |
주의사항 | WEB-INF 폴더 안에 넣으면 안 보임, 경로 설정 정확히 해야 함 |