결론부터 말하면 서버 설정의 변경 없이는 get, post 방식 모두를 해결하기는 힘듬.

post 해결 방법

  1. WEB-INF/web.xml
  2. <filter>

    <filter-name>Encoding Filter</filter-name>

    <filter-class>kr.co.aritaum.brand.common.CommonEncodingFilter</filter-class>

    <init-param>

    <param-name>encoding</param-name>

    <param-value>UTF-8</param-value>

    </init-param>

    </filter>

    <filter-mapping>

    <filter-name>Encoding Filter</filter-name>

    <url-pattern>/*</url-pattern>

    </filter-mapping>

CommonEncodingFilter에서 하는 일은

  1. if (request.getCharacterEncoding() == null) {
  2. if (this.encoding != null) {
  3. request.setCharacterEncoding(this.encoding);
  4. }
  5. }

출처: http://neokido.tistory.com/entry/EncodingFilter-%EB%A1%9C-%ED%95%9C%EA%B8%80-%EC%B2%98%EB%A6%AC-%ED%95%98%EA%B8%B0

 

get 해결 방법

톰켓의 conf/server.xml에서 해당 Service의 Connector 속성으로 URIEncoding="UTF-8"을 추가하면됨.

  1. <Connector port="8080" maxHttpHeaderSize="8192"
  2. maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
  3. enableLookups="false" redirectPort="8443" acceptCount="100"
  4. connectionTimeout="20000" disableUploadTimeout="true"
  5. URIEncoding="UTF-8" />

 

만약 서버 설정을 변경할 수 없다면

  1. String title = new String(request.getParameter("title").getBytes("iso-8859-1"), "UTF-8");

이 작업을 계속 해야할 듯. 물론 null 체크 때문에 별도 클래스를 만들게 되겠지만...


  1. 저도 밤새고 있는데 에그님 글이 이 야심한 시각에 줄줄이 올라와요 ㅋㅋㅋ
    로마 부러워요 ㅜㅜㅜ 그렇게 싼 표가 있었음 저도 데꾸가시지 ㅋㅋㅋ

    에그님의 그 나긋나긋한 목소리와 은근한 미소가 그리워요!
    즐거운 학교생활 하시와요~:DDD

    2009.05.21 04:39 신고 [ ADDR : EDIT/ DEL : REPLY ]
    • 항상 늦게까지 메신저에 로그인 하고 계신데 그러다 몸 상해요;;

      2009.05.21 18:52 신고 [ ADDR : EDIT/ DEL ]
  2. 오~ 자바도 함?

    2009.05.21 15:18 신고 [ ADDR : EDIT/ DEL : REPLY ]
    • 텀프로젝트 중에 하나가 자바라서요.ㅎㅎ;
      너무 오랜만이라 완전 삽질 중;

      2009.05.21 18:53 신고 [ ADDR : EDIT/ DEL ]

댓글을 달아 주세요