[JSP] 페이지 모듈화 include 디렉티브의 케릭터셋(charset)이 대소문자 구별!?




요즘 한창 JSP 공부에 나름 열중 아닌 열중을 하고 있는데...
페이지 모듈화 챕터에서 include 디렉티브의 처리 사용방법을 실습하던중...

읽기전에 손가락 한번 클릭~ >_<

고마워요 ~ Chu ~ ♥



예상치 못한 에러를 만나게 되었다...
우선 연습해보던 소스 2개는 아래와 같은데...


1번째 includer.jsp 는 실제 include 디렉티브를 이용해서 포함시켜 실행되는 페이지,
2번째 includee.jspf 는 1번째 includer.jsp에 포함되어 삽입되어 실행되는 페이지 인데...
눈여겨 볼 건 코드 가 아니라 바로 처음 위치한 설정 부분의 케릭터셋(charset)이다.

1번째엔 케릭터셋이 대문자로 EUC-KR로 명시되어 있고( 필자 이클립스 디폴트 )
2번째엔 케릭터셋이 소문자로 euc-kr로 명시되어 있었다.
내가 알기론 케릭터셋은 대소문자를 구분하지 않는것으로 알고있는지라,
큰 신경안쓰고 넘어가서 실행을 하는 결과!!

HTTP Status 500 에러를 발생시키면서 작동을 안한다...
또, 내가 알기론 HTTP Status 500 에러는 서버쪽 ( 개발용이므로 로컬 ) 의 낮은 버전 문제인걸로 알고있었는데 도저히 이해가 안되길래
에러코드는 읽어보지도 않고 저 짧은 2개 파일의 코드를 쥐잡듯이
오타검사하고, 실수 검사해봤지만 해결이 되지 않아서
천천히 에러메시지를 읽어보던중!!

org.apache.jasper.JasperException: /includee.jspf(1,2) Page directive: illegal to have multiple occurrences of contentType with different values (old: text/html; charset=EUC-KR, new: text/html; charset=euc-kr)

라는 메세지를 발견하고, 읽어보니, 대충 EUC-KR 에서 euc-kr로 하는것이 최신 값 이라는
뜻 같길래... 바꿔보았더니 정상작동 하는것이 아닌가!!!


나참...ㅋ 케릭터셋은 대소문자는 구별을 안하지만 통일은 해야 된다는 것인가?
말 나온김에 여러가지 실험을 해보기로 했다.
편의를 위해서 1번째파일(include를 하는쪽)을 A라고 칭하고
           2번째파일(include 디렉티브에 의해 포함되는쪽)을 B라고 칭하고 적어보겠다.


1. A(euc-kr) , B(euc-kr )  : 정상작동
2. A(EUC-KR), B(euc-kr) : HTTP Status 500 에러
3. A(EUC-KR), B(EUC-KR) : 정상작동
4. A(euc-kr) , B(EUC-KR) : HTTP Status 500 에러

이상이다....
내 이클립스와 WAS인 톰켓이 문제일 확률도 없지 않아 있지만,
여기서 실험해본 바로는... 적어도 include 시엔, 케릭터셋 대소문자를 통일 하라는 소리다....

알아두어야 할 것은, 포함되는 파일인 jspf 파일이라 할지라도 콘텐츠 타입과 케릭터셋을
알맞게 지정을 해주어야 정상작동 한다는 사실...!!




댓글(0)

Designed by JB FACTORY