Header

  1. View current page

    정상혁의 수첩

Profile_img_60x60_08
195

Tomcat encoding


1. GET

Tomcat Connector 항목(HTTP, AJP)의 URIEncoding 속성

 

<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URIEncoding="UTF-8"/>


2. POST

HTTP 요청의 Header에서 Context-Type 항목의 charset 속성값

 

...

Context-Type: text/html; charset=ISO-8859-1

 

 

<filter>
  <filter-name>encodingFilter</filter-name>
  <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
  <init-param>
    <param-name>encoding</param-name>
    <param-value>UTF-8</param-value>
  </init-param>

  <init-param>
    <param-name>forceEncoding</param-name>
    <param-value>true</param-value>
  </init-param>
</filter>

 

<filter-mapping>
  <filter-name>encodingFilter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

 

3. JSP

 

<%@page contentType="text/html; charset=UTF-8" %>


4. Response

 response.setContentType("text/html; charset=UTF-8") 이나  response.setCharacterEncoding("UTF-8")

 

 

한글 코드 문제와 해결방법

          <%@ page contentType="text/html; charset=EUC_KR" %>
          
          <%@ page contentType="text/html; charset=EUC_KR" %> ...
          
          <% String userId = new String(request.getParameter("id").getBytes("Cp1252"), "EUC_KR");
          
          ...
          

JSP에서 Beans 사용하기<jsp:setProperty>

          JSP 문서 <jsp:useBean id="user" class="User" scope="page"/>
          
          <jsp:setProperty name="user" property="*"/>
          
          <% user.toKorean(); %>
          
          User Bean (User.java) import java.io.*;
          
          import CharacterSet;
          
          public class User {
          
          private String id;
          
          private String password;
          
          public void setId(String str) { id = str; }
          
          public void setPassword(String str) { password = str; }
          
          public String getId() { return id; }
          
          public String getPassword() { return password; }
          
          public void toKorean() {
          
          id = CharacterSet.toKorean(id); } }
          
          CharacterSet 클래스 (CharacterSet.java)
          
          import java.lang.*; import java.io.*;
          
          public class CharacterSet {
          
          public static String toKorean(String str) { try
          
          { return new String(str.getBytes("Cp1252"), "EUC_KR");
          
          } catch (UnsupportedEncodingException e) { return null; } } }
          

Web.xml

<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>filters.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>euc-kr</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

Server.xml

톰캣 인코딩 설정해야 하는 경우

설정파일

###############################################

/usr/local/share/jakarta-tomcat-5.0.19/conf/web.xml charset추가

<mime-mapping>
<extension>htm</extension>
<mime-type>text/html;charset=euc-kr</mime-type>
</mime-mapping>
<mime-mapping>
<extension>html</extension>
<mime-type>text/html;charset=euc-kr</mime-type>
</mime-mapping>

###############################################

/usr/local/apache/conf/httpd.conf 아래 두줄 추가

AddCharSet EUC-KR .euc-kr
AddDefaultCharSet EUC-KR

http://blog.daum.net/turnnig-pointer/15380579





History

Last edited on 03/03/2011 13:18 by benelog

Comments (0)

You must log in to leave a comment. Please sign in.