가이드라인 홈페이지 www.guideline.co.kr
가이드라인, 사업자등록번호 109-03-42915, 문의하기
TEL 070-4155-6478, Since 2001, 개인정보취급방침
서비스 신청 서비스 이용법 My Setting 이하 메뉴는 회원으로 로그인 하셔야 합니다. My 도메인 일대일 게시판 개인정보변경 My DB My HDD 납부 내역등록
아이디
비밀번호
아이디/비밀번호 찾기
네임서버 정보
1차 ns.gnameserver.net
211.239.124.250
2차 ns2.gnameserver.net
211.239.124.251
웹호스팅 연장 안내
입금 계좌 정보
우리은행 홈페이지로 새창 열기
은행: 우리은행
계좌: 810-184634-02-001
예금주: 전재우
선납가능(개월수 관계없음)
(납부자명에 회원 ID로 입금 후 납부내역등록,일대일 게시판에 알려주세요.)
카드결제 요금납부
세금계산서 발행 신청
Redhat Linux, Apache, Ant, Tomcat, Java, MySQL, PHP, Qmail, Python, vsftpd
(guideline QR code)
  제목 : get/post 넘길때 한글이 깨어지는 문제 해결중 하나(Filter) 글 번호  
글자 크기 : 글자 크게 글자 작게

안녕하세요. 가이드라인입니다.
euc-kr 톰캣 초기 세팅시 get/post 메소드로 넘어오는 Parameter값 한글이 깨어질때
한글 처리 방법은 각각 다양하고 여러 방법이 있어 자신이 평소에 즐겨 세팅 해 왔던
방식으로 구현하는 것이 좋습니다. 서비스 이용법은 참조 사항입니다.
Filter에 관한 방법을 물어 보는 유저분이 있어 아래와 같이 설명해 드립니다.
http://archive.apache.org/dist/tomcat/ 사이트에 톰캣 버전별로 있습니다.
원하시는 버전을 다운로드 받으시고 설치 해 보시면 webapps/examples 예제 파일이
많이 있으니 참조 해 주시길 바랍니다.

get 방식으로 한글이 깨어질때 $CATALINA_HOME/conf/server.xml 파일에
Connector 연결 구문에 자신에 맞는 URIEncoding="euc-kr",URIEncoding="UTF-8" 으로 설정을 해 주면 됩니다.
(가이드라인 단독톰캣 유저는 바로 가능하지만
공용톰캣 유저는 8859_1,euc-kr 서버로 나누어 세팅이 되기 때문에 따로 설정을 하실 필요는 없습니다.)

URIEncoding 을 이미 정의 해 놓아도 post 된 폼 테이터를 해당 플그래를 사용하지 않기 때문에
여러가지 방법으로 한글을 처리 하고 있습니다. 그중 하나인 Filter 사용법을 알아 보겠습니다.
post 방식으로 한글이 깨어지는 현상을 filters.SetCharacterEncodingFilter 으로
간단하게 설정을 할 수 있습니다.
[가이드라인 공용톰캣 사용자]
1. 계정밑 www/WEB-INF/classes 폴더 밑에 SetCharacterEncodingFilter.java 파일을 생성한다.
2. 컴파일 한다.
cd www/WEB-INF/classes
javac SetCharacterEncodingFilter.java -d .
cd filters/
SetCharacterEncodingFilter.class 파일이 있으면 된다.
3. www/WEB-INF/web.xml 파일에 <filter> 항목을 추가한다.

* 단독톰캣을 사용할때는 각각 사이트에 개별적으로 설정하지 않고
단독 서버에서 바로 설정을 할 수 있습니다.
설정 방법은 동일하며 설정 경로만 다릅니다.
1 $CATALINA_HOME/common/classes 폴더에 SetCharacterEncodingFilter.java 파일을 생성한다.
2. cd $CATALINA_HOME/common/classes
javac SetCharacterEncodingFilter.java -d .
cd filters/
SetCharacterEncodingFilter.class 파일이 있으면 된다
3. $CATALINA_HOME/conf/web.xml에 <filter> 항목을 추가한다.
* 우선은 개별 사이트 개인환경변수 밑에서 각각 작업을 추천한다.
단독톰캣 경우에 동일한 패턴의 사이트만 있다면 톰캣 서버에서 바로 처리 하는 것이 좋지만
추가 되는 Host 환경을 다르게 구현해야 할때도 있기 때문입니다.


파일명 : SetCharacterEncodingFilter.java
--------------------------------------------------------------------

package filters;

import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.UnavailableException;

public class SetCharacterEncodingFilter implements Filter {
protected String encoding = null;
protected FilterConfig filterConfig = null;
protected boolean ignore = true;
public void destroy() {
this.encoding = null;
this.filterConfig = null;
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain)
throws IOException, ServletException {
if (ignore || (request.getCharacterEncoding() == null)) {
String encoding = selectEncoding(request);
if (encoding != null)
request.setCharacterEncoding(encoding);
}
chain.doFilter(request, response);
}
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
this.encoding = filterConfig.getInitParameter("encoding");
String value = filterConfig.getInitParameter("ignore");
if (value == null)
this.ignore = true;
else if (value.equalsIgnoreCase("true"))
this.ignore = true;
else if (value.equalsIgnoreCase("yes"))
this.ignore = true;
else
this.ignore = false;
}
protected String selectEncoding(ServletRequest request) {
return (this.encoding);
}
}

// SetCharacterEncodingFilter.java 끝



파일명 : web.xml
--------------------------------------------------------------------

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<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>
</web-app>



가이드라인 [서비스 이용법] - get/post 넘길때 한글이 깨어지는 문제 해결중 하나(Filter)
http://www.guideline.co.kr

등록일   2007-11-09
조회수   15291
다음글 : CCL(Creative Commons License)를 준수 하고 계신가요? (2008-03-26)
보안서버 구축(SSL)은 어떻게 하나요? (2007-10-30) : 이전글

가이드라인 [서비스 이용법] 제목 내용  
번호 서비스 이용법 조회 등록일
108 구글 지메일(gmail.com)에 POP3 메일 계정 연동하기 3284 2016-06-01
107 가이드라인 서버 SSH, Telnet 접속 방법 (PuTTY) 3919 2015-06-02
106 받는 메일 서버 유형 imap 설정하기 3598 2014-12-30
105 SSH 아이피 차단이 된 경우 3049 2014-09-04
104 MySQL 5.x 버전에 복구시 TYPE=MyISAM Error 해결 방법 45013 2013-05-23
103 XE 게시판 SSL 설정 사용안함으로 변경하기 6111 2012-12-11
102 FTP 계정 정보를 확인 방법 안내입니다. 7123 2011-05-12
101 아웃룩 - 메일 규칙 설정 방법 9253 2010-07-27
100 그누보드 g4_login 테이블에 관하여 8475 2009-01-09
99 엔빌더 중복함수 처리 문제 6361 2009-01-09
98 제로보드 중복함수 발생시 처리 방법 8557 2009-01-04
97 CCL(Creative Commons License)를 준수 하고 계신가요? 7923 2008-03-26
96 get/post 넘길때 한글이 깨어지는 문제 해결중 하나(Filter) 15291 2007-11-09
95 보안서버 구축(SSL)은 어떻게 하나요? 22179 2007-10-30
94 커넥션 풀(DBConnectionPool) 이용시 mysql.maxconn 개수 안내 9081 2007-10-02
1 2 3 4 5 6 7 8


 
주소 : (우)150-909 서울특별시 영등포구 도림천로 387 302호   TEL) 070-4155-6478   문의하기, 모바일