• 검색 결과가 없습니다.

인코딩 설정

문서에서 JEUS Web Engine 안내서 (페이지 41-44)

1.6. 환경 설정

1.6.5. 인코딩 설정

웹 엔진은 엔진 내의 모든 컨텍스트에 의해 사용될 수 있는 3가지 인코딩 설정을 가지고 있다.

Request Url Encoding

HTTP 요청 URL을 위한 인코딩이다.

Request Url Encoding은 웹 브라우저로부터 받은 HTTP 요청의 Request Line에 적용된다. Request Url Encoding이 설정되지 않은 경우에는 Request Encoding이 적용된다. 일반적으로 Request Url Encoding 을 지정해야 하는 경우는 HTTP Request Line의 인코딩이 HTTP 바디와 다른 특별한 경우이다.

– Request Url Encoding은 다음의 우선순위에 따라 적용된다.

1. domain.xml에 정의된 "forced" 인코딩

2. HTTP 헤더의 "Accept-Language" 필드값에 해당하는 인코딩 3. domain.xml에 정의된 "default" 인코딩

4.위의 어떤 것도 적용되지 않으면 기본적으로 "ISO-8859-1"로 설정

기본적으로 우선순위에 따라 적용되지만, 사용자가 Request 객체에 setCharacterEncoding()으로 설 정한 경우에는 query string 및 쿠키에 대해서는 사용자가 설정한 인코딩이 최우선적으로 적용된다.

따라서 관리자는 domain.xml에 "default"와 "forced" 요청 인코딩을 정의할 수 있다. "default"와 "forced"를 동시에 설정하는 것은 의미가 없으므로 둘 중 하나만 설정한다.

Request Encoding

HTTP Request Header의 query string, 쿠키 및 postdata에 사용되는 인코딩이다.

이 인코딩은 jeus-web-dd.xml에서도 설정이 가능하며, jeus-web-dd.xml의 설정이 우선적으로 적용된다.

– Request Encoding은 다음의 우선순위에 따라 적용된다.

1.애플리케이션(Servlet/JSP)에서의 설정(request.setCharacterEncoding()으로 설정한 인코딩) 2. domain.xml에 정의된 "forced" 인코딩

3. HTTP 요청의 Content-Type의 charset에 의한 인코딩 4. HTTP 헤더의 "Accept-Language" 필드값에 해당하는 인코딩 5. domain.xml에 정의된 "default" 인코딩

6.위의 어떤 것도 적용되지 않으면 기본적으로 "ISO-8859-1"로 설정

기본적으로 우선순위에 따라 적용되지만, jeus-web-dd.xml에 설정한 경우에는 jeus-web-dd.xml의 설 정이 우선적으로 적용된다.

– HTTP Request Line의 query string은 다음과 같은 우선순위로 인코딩이 적용된다.

1. request.setCharacterEncoding()으로 지정한 인코딩

2. Request Url Encoding : 애플리케이션에서 설정되지 않은 경우 3. Request Encoding : Request Url Encoding이 설정되지 않은 경우

Response Encoding

웹 컨테이너로부터 받은 전체 응답 HTTP 메시지에 적용되는 인코딩이다.

Response Encoding은 PrintWriter.println()을 Byte 배열로 변환할 때 HTTP 헤더의 "Content-Type:text/html;charset=XXX" 부분의 "XXX" 값을 설정하고 웹 컨테이너의 응답에 어떤 인코딩을 사용 할지 결정한다. 이 인코딩 역시 jeus-web-dd.xml에서도 설정이 가능하다.

– Response Encoding은 다음의 우선순위 목록에 따라 적용된다.

1. domain.xml에 정의된 "forced" 인코딩

2.서블릿에서의 설정(Servlet에서는 response.setContentType ("text/html;charset=XXX"), JSP에서 는 <%@ page contentType="text/html;charset=XXX"%>로 프로그래머가 설정한 XXX 값의 인코 딩)

3. domain.xml에 정의된 "default" 인코딩

4.위의 어떤 것도 적용되지 않으면 기본적으로 "ISO-8859-1"로 설정된다.

기본적으로 우선순위에 따라 적용되지만 jeus-web-dd.xml에 설정한 경우에는 jeus-web-dd.xml의 설 정이 우선적으로 적용된다. 관리자는 domain.xml에 "default"와 "forced" Response Encoding을 정의 할 수 있다.

WebAdmin 사용

WebAdmin을 사용하여 인코딩을 설정하는 방법은 다음과 같다.

1. WebAdmin 왼쪽 메뉴에서 [Servers]를 선택하면 서버 목록 조회 화면으로 이동한다. 서버 목록에서 실 행할 서버를 선택하면 서버 설정화면으로 이동한다. 설정화면에서 [Engine] > [Web Engine] > [Basic]

메뉴를 선택한다. ([그림 1.7] 참고)

2.설정 및 설정 변경을 위해 화면 왼쪽의 [LOCK & EDIT] 버튼을 클릭해서 설정 변경 모드로 전환한다.

3.고급 선택사항의 Encoding 영역에서 'Request Url Encoding', 'Request Encoding', 'Response En coding' 항목을 설정하고 [확인] 버튼을 클릭한다.

'Request Url Encoding'을 제외하고 jeus-web-dd.xml에서도 설정이 가능하다.

[그림 1.14] 웹 엔진 인코딩 - 설정

각 항목별로 'Default' / 'Forced' 중 하나를 선택하여 활성화한 후 설정할 인코딩명을 입력한다.

설명 설정값

어떤 인코딩도 없을 경우에 기본값으로 사용한다.

Default

해당 인코딩을 모든 경우에 항상 강제적으로 사용한다.

Forced

4.설정을 완료한 뒤 설정 내용의 반영을 위해 [Activate Changes] 버튼을 클릭한다. ([그림 1.5] 참고) 5.설정 내용이 반영되면 다음과 같이 화면에 반영 결과가 나타난다. 'Attach Stacktrace on Error'는 동

적 설정 항목이 아니므로 반영 결과에 표시된 것처럼 서버를 재시작해야 설정 내용이 반영된다.

[그림 1.15] 웹 엔진 인코딩 - 설정 적용 결과

참고

JEUS 6까지는 위의 <default>와 <forced>를 동시에 설정하는 것이 가능했다. 그러나 두 값이 모두 설정되면 <forced>가 적용될 것이므로 동시에 설정되는 것은 의미가 없기 때문에 JEUS 7에서는 이 부분을 서로 배타적으로 설정하도록 변경했다.

문서에서 JEUS Web Engine 안내서 (페이지 41-44)