JSP 오류 해결: pageEncoding 중복 선언 에러 해결법 (JBWEB004160)
JSP 개발 도중 다음과 같은 오류 메시지를 만났다.
/WEB-INF/.../.../***.jsp
(JBWEB004251: An error occurred at line: 2 column: 1)
JBWEB004160: Page directive must not have multiple occurrences of 'pageEncoding'
처음엔 당황했지만, 이는 JSP 지시문(<%@ page %>
) 내부에서 pageEncoding 속성이 두 번 이상 선언된 경우 발생하는 오류다.
✅ 에러 원인
JSP 상단에는 일반적으로 다음과 같은 형식의 지시문이 포함된다:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ page pageEncoding="UTF-8" %> <%-- 중복 선언으로 오류 발생 --%>
여기서 pageEncoding="UTF-8"
이 중복되어 있기 때문에 톰캣이나 웹 애플리케이션 서버에서 오류를 발생시킨다.
✅ 해결 방법
중복 선언을 제거하고 하나의 지시문으로 통합하면 된다.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
혹은 다른 설정이 필요 없다면 간단히 이렇게 써도 된다:
<%@ page pageEncoding="UTF-8" %>
포인트는 pageEncoding
은 딱 한 번만!
🔍 정리
JBWEB004160
에러는 JSP 파일 상단에서pageEncoding
을 중복 선언했을 때 발생한다.- 하나의
<%@ page %>
지시문에만pageEncoding
을 포함하거나, 중복 선언된 다른 지시문은 삭제해야 한다. - 에디터에서
"pageEncoding"
을 검색해 중복된 부분을 쉽게 찾을 수 있다.