RadarURL

웹 프로그래밍
2009.07.20 20:44

Tomcat 한글관련

조회 수 10342 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

가 크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

가 크게 작게 위로 아래로 댓글로 가기 인쇄

ㅎㅎㅎ..카페에 올렸던거 같은데 카페에도 안 보이고...


제 블로그에도 안 보이는군요-_-;;;(starpooh에만 있는것이 꿈꾸고 있는건가..ㅠㅠ)


간간이 질문들이 올라오는 부분이라서 카페에 다시(?) 포스팅 합니다.


 


------------------------ 이하홈피 원문 ---------------------------------------------


 


작 성 자 : 유재성 (버섯돌이)
작성일자 : 2007-11-07 18:12 (수)
최종수정 : 2008-07-29 12:17 (화) - 출처및 배포 블로그 변경



안녕하세요 버섯돌이 유재성입니다.


톰켓이 버전에 따라 설정 방법이 바뀌다보니 가끔 쓰려고보면 간간이 혼동이 오는군요.^^;;


그래서 오늘은 Tomcat에서 한글관련 부분을 간단히 알아보도록 하겠습니다.


 


[Tomcat 4.X]


기본 한글 처리 방법














 메소드


한글 처리 방법 

 GET  request.setCharacterEncoding("EUC-KR");
 POST  request.setCharacterEncoding("EUC-KR");


 


[Tomcat 5.X]


기본 한글 처리 방법














 메소드


한글 처리 방법 

 GET  server.xml 파일의 <Connector>태그에 URIEncoding="EUC-KR" 속성추가
 POST  request.setCharacterEncoding("EUC-KR");


 


Tomcat 5.X이상의 버전에서는 톰켓의 conf폴더에 존재하는 server.xml파일에서


URIEncoding 속성으로 한글 설정이 가능합니다.


 


[URIEncoding 사용 예시] - server.xml 파일 내용중 일부


<!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
<Connector acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" enableLookups="false" maxHttpHeaderSize="8192" maxSpareThreads="75" maxThreads="150" minSpareThreads="25" port="8080" redirectPort="8443" URIEncoding="EUC-KR"/>


 


<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector enableLookups="false" port="8009" protocol="AJP/1.3" redirectPort="8443" URIEncoding="EUC-KR"/>


위처럼 Connector에 URIEncoding 속성을 설정할 경우 URL이나 FORM의


GET방식으로 전달되는 파라메터상의 문자열 인코딩이 EUC-KR방식으로 전달됩니다.


 


한글 처리의 경우 ClueRequestFilter 필터나 자체 제공되는 필터를 이용하는 방법도 있습니다.


 


 


[Ajax를 위한 한글 처리]


Ajax 프로그래밍시 필수인 XMLHttpRequest 객체의 경우


웹 페이지 상단에 설정하는 인코딩 설정과 상관없이 무조건 UTF-8형식으로 요청합니다.


 


따라서, Ajax프로그래밍시에는 프로그램 자체를 UTF-8 형식으로 작성하는게 편합니다.


주의할 것은 코딩상에서 인코딩 타입이 UTF-8이라면 실제로 작성되는 파일 자체도


UTF-8형식으로 저장해야지 오류가 발생하지 않습니다.


 


UTF-8형식만 사용할 예정이라면 위 톰켓의 한글 설정을 EUC-KR이 아니라


"UTF-8"로 설정하면 기존처럼 데이터를 주고 받으면 되므로 코딩이 간단하게 해결됩니다.


부득이 서버 설정은 EUC-KR로 설정하고 일부 페이지만 UTF-8로 주고 받아야 한다면


전달하는 자바스크립트 측에서 encodeURIComponent()메소드로 엔코딩후 전달하면 됩니다.


Ajax의 경우 서버및 클라이언트 모두 UTF-8일 경우 정상 동작하지만


그외의 조합은 브라우저및 WAS등 상황에 따라서 의도한 대로 동작하지 않을 수 있습니다.


 


아래는 톰켓 5.5버전에서 server.xml에 euc-kr을 설정한 경우의 한글 처리 예제입니다.


b1.jsp에서 한글을 입후 b2.jsp를 호출해서 정상적으로 출력되는지 확인하는 간단한 예제입니다.


[server.xml] Apache Tomcat 5.5.23 + JDK 1.6.0_02-b06


<Connector acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" enableLookups="false" maxHttpHeaderSize="8192" maxSpareThreads="75" maxThreads="150" minSpareThreads="25" port="8080" redirectPort="8443" URIEncoding="EUC-KR"/>


 


<Connector enableLookups="false" port="8009" protocol="AJP/1.3" redirectPort="8443" URIEncoding="EUC-KR"/>


 


[b1.jsp]


<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
<script language="javascript">
<!--
        function ddd(frm) {
                frm.name.value=encodeURIComponent(frm.name.value);
                frm.submit();
        }
-->
</script>

</head>
<body>
[GET]
<form name="ddd1" method="get" action="b2.jsp">
        <input type="text" name="name" value="한글">
        <input type="button" onclick="ddd(this.form)" value="전송">
</form>

[post]
<form name="ddd2" method="post" action="b2.jsp">
        <input type="text" name="name" value="한글">
        <input type="button" onclick="ddd(this.form)" value="전송"
>
</form>


 


[b2.jsp]






<%@ page contentType ="text/html; charset=utf-8"  %>
<pre>
name : <%=request.getParameter("name") %>
java.net.URLDecoder.decode : [
<%=java.net.URLDecoder.decode(request.getParameter("name"),"UTF-8")%>]
</pre>


 


[실행결과]


 



 


위와같이 [GET]방식의 경우 입력란에 [한글]이라고 입력후 [전송]버튼을 클릭하면


아래처럼 한글이 제대로 처리되는것을 볼 수 있다.


 



 


클라이언트측에서 encodeURIComponent()메소드로 인코딩후 전송하였기때문에


전달받은 내용을 보면 한글로 출력되는게 아니라 %ED%95...처럼 출력됨을 알 수 있다.


인코딩된 데이터를 우리가 원하는 값으로 사용하기위해서는 디코딩 과정이 필요하다.


디코딩시에는 java.net.URLDecoder.decode 메소드를 이용하면된다.


UTF-8형식으로 디코딩을 해야하기때문에 인코딩 타입으로 "UTF-8"을 지정하면된다.


java.net.URLDecoder.decode(request.getParameter("name"),"UTF-8")


 


 


[참고] 메모장에서 UTF-8 파일 작성 방법



 


작성하려는 문서가 UTF-8형식이라면 반드시 파일을 저장시 인코딩 타입을 "UTF-8"로 저장해야한다.


메모장을 이용할 경우 그림처럼 인코딩 타입에서 "UTF-8"을 선택하면된다.


그외의 편집 프로그램들은 각 프로그램의 메뉴얼을 참고하기 바란다.


 








[저작권 관련]


[저작권 관련]부분을 함께 이동하는 경우에 한해서 다른곳으로의 이동을 허락합니다.

본 자료는 당분간 http://blog.naver.com/starpooh님의 블로그에 함께 포스팅됩니다.
2008-07-29부터 http://blog.naver.com/dev4unet의 제 블로그에 배포 됩니다.

잘 못된 내용의 수정이나 알릴 사항이 있으면 블로그에 메모를 남겨주시기 바랍니다.


본 게시글의 원본출처는 http://yoo7577.dev4u.net 이며,


원활한 공유및 관리를 위하여 본 게시물의 일부 또는 전체의 직접적인 수정을 금합니다.




 츨처 : http://cafe.naver.com/javacircle/33182
?

공부 게시판

공부에 도움되는 글을 올려주세요.

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 [공지] 공부 게시판 입니다. 처누 2003.08.18 2010016
2618 블로그 청담동셔츠룸 010 2817 0845 일정과 인원에 맞춘 셔츠룸 문의 new 정열적인퀘이사14 2026.10.05 0
2617 카메라 최근 테헤란로 벤처 밸리의 핵심 리더들 사이에서 ‘클래스가 다른 정통 수질과 프라이빗 무드’로 소문 자자한 '선릉 룸싸롱' 기습 방문, 인공미를 거부하는 무결점 뉴페이스들과 심장을 마비시킨 사심 플러팅에 제대로 저격당하고 온 솔직 후기 new 희미한홍학99 2026.10.05 0
2616 u-E(활성화) 본식DVD, 웨딩영상 색감이 중요한 이유새 창 열림 new 힘겨운귤35 2026.10.05 1
2615 공지 대전, 인천, 세종 하수구 막힘 문제 해결 방법 new 정열적인코요테90 2026.10.05 4
2614 취미 <문경맥주> 구입 할 수 있는 곳은 새 창 열림 new 타오르는드래곤61 2026.10.05 1
2613 데이터베이스 강남건전지❤️OlO-8655-OO53❤️친절문의환영 #강남건전지 #강남유니콘 #선릉유니콘 #강남건전지위치 #선릉역건전지#대치동유니콘 #강남바커스 #선릉바커스 #선릉역바커스 #강남룸클럽 #선릉룸클럽 #강남베터리 #강남바데리 new 괴랄한재규어89 2026.10.05 1
2612 사무 소프트웨어 용인두피문신 고민? 만족 후기 보려면 new 날카로운꿩11 2026.10.05 8
2611 논문 카­톡 gusim8003 급전/내구제 (24시문의) 폰테크 소액대출 선불폰 가개통 new 타오르는켄타우로스86 2026.10.05 1
2610 윈도우즈 웨딩누브라, 완벽한 드레스 핏을 위한 선택 new 날카로운감시자22 2026.10.05 4
2609 인터넷 성공적인 중고화물차 선택, 현명한 가이드 new 붉은드래곤50 2026.10.05 2
2608 가상화 인천맛집 순위 new 차가운파편97 2026.10.05 2
2607 응용 프로그래밍 완벽한 웨딩드레스 핏의 비밀, 웨딩누브라 new 힘겨운암석76 2026.10.05 2
2606 카메라 파주누수업체, 신속 해결 전문가의 비결 new 차가운에메랄드79 2026.10.05 1
2605 u-E(통합센터) 올해의 핫플 선정 간석동 마블! 010&&8923&&0291 new 교활한감시자99 2026.10.05 1
2604 웹서버,WAS 손목터널증후군 치료, 현명한 선택 기준은? 괴상한두루미52 2026.10.05 1
2603 u-E(통합센터) 손목터널증후군, 두팔로정형외과에서 해답을 찾다 눈부신백마법사86 2026.10.05 2
2602 응용 프로그래밍 골든타워 010 2817 0845 골타문의 편하게 알아보는 셔츠룸 속삭이는미노타우르93 2026.10.05 2
2601 u-E(TestBed) 특별한 기념품제작, 판촉물365 광기의태풍18 2026.10.05 1
2600 건강 대전누수 문제, 청년연합누수가 답이다 몽환적인삵34 2026.10.05 2
2599 u-E(법,정책) 양산싱크대막힘, 뚫자하수구에서 한 번에 해결 낙관적인유니콘42 2026.10.05 1
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 131 Next
/ 131


즐겨찾기 (가족)

JAESOO's HOMEPAGE


장여은 홈페이지


장여희 홈페이지


장여원 홈페이지


즐겨찾기 (업무)

알리카페 홀릭

숭실대 컴퓨터 통신연구실 (서창진)

말레이시아 KL Sentral 한국인 GuestHouse


즐겨찾기 (취미)

어드민아이디

유에코 사랑회

아스가르드 좋은사람/나쁜사람

JServer.kr

제이서버 메타블로그

재수 티스토리


즐겨찾기 (강의, 커뮤니티)

재수 강의 홈페이지


한소리


VTMODE.COM


숭실대 인공지능학과


숭실대 통신연구실


베너