본문 바로가기
Dev/frontend

JSP 파일 내에서 JSTL을 이용해 requestURI 알아내기

by Luigi.yoon 2018. 2. 1.

✅ JSP에서 Request URI 얻기 (JSTL 방식)

Java 코드에서의 방식

request.getRequestURI();
 

JSTL에서의 기본 방식

${pageContext.request.requestURI}​
  • 이 값은 JSP 자체의 경로 (*.jsp) 를 반환합니다.
  • 템플릿 엔진을 사용하거나 jsp:include, jsp:forward 등을 사용하면 실제 요청 경로와 다를 수 있습니다.

✅ 실제 클라이언트 요청 URI를 얻으려면?

JSTL에서 아래와 같이 사용하세요:

${requestScope['javax.servlet.forward.request_uri']}​
  • 이 값은 RequestDispatcher를 통해 포워딩된 경우에도 클라이언트의 실제 요청 URI를 반환합니다.
  • 내부적으로 RequestDispatcher.forward()가 호출되면, WAS는 아래의 속성들을 requestScope에 저장합니다:

속성 키 의미
javax.servlet.forward.request_uri 원래 요청된 URI
javax.servlet.forward.context_path 컨텍스트 경로
javax.servlet.forward.servlet_path 서블릿 경로
javax.servlet.forward.path_info 추가 경로 정보
javax.servlet.forward.query_string 쿼리 스트링
 

✅ 요약

목적 JSTL 표현식
현재 JSP 파일 경로 ${pageContext.request.requestURI}
클라이언트의 원래 요청 URI ${requestScope['javax.servlet.forward.request_uri']}