RadarURL
Skip to content
2009.07.20 20:44

Tomcat 한글관련

조회 수 4489 추천 수 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.23JDK 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
?

  1. No Image 12May
    by JaeSoo
    2009/05/12 by JaeSoo
    Views 3819 

    Apache에서 .htaccess 파일 활용하기 - Rewrite mod

  2. No Image 23Jun
    by JaeSoo
    2009/06/23 by JaeSoo
    Views 4848 

    계정하나에 두개의 도메인을 각각의 서브폴더에 연결시키는 방법

  3. No Image 24Jun
    by JaeSoo
    2009/06/24 by JaeSoo
    Views 3948 

    ReWrite Module

  4. No Image 24Jun
    by JaeSoo
    2009/06/24 by JaeSoo
    Views 4322 

    .htaccess

  5. Tomcat 한글관련

  6. No Image 05Apr
    by JaeSoo
    2010/04/05 by JaeSoo
    Views 5837 

    웹서버 속도 저하 문제 해결 (xp,Apache 2.2.X, XAMPP)

  7. No Image 28Apr
    by JaeSoo
    2010/04/28 by JaeSoo
    Views 6950 

    가상 호스트 설정법

  8. No Image 19Feb
    by JaeSoo
    2011/02/19 by JaeSoo
    Views 7187 

    싸이트 외부링크 차단하는방법

  9. No Image 21May
    by JaeSoo
    2011/05/21 by JaeSoo
    Views 9518 

    APMSETUP 7 + eAccelerator 설치..

  10. No Image 01Jun
    by JaeSoo
    2011/06/01 by JaeSoo
    Views 9324 

    아파치 프로세스의 메모리 사용량 줄이기

  11. No Image 22Sep
    by JaeSoo
    2011/09/22 by JaeSoo
    Views 7315 

    불법웹(이미지) 링크 차단에 대한 설정법

  12. No Image 22Sep
    by JaeSoo
    2011/09/22 by JaeSoo
    Views 6112 

    외부 링크 방지

  13. No Image 14Nov
    by JaeSoo
    2011/11/14 by JaeSoo
    Views 5417 

    WAMP (Windows+Apache+MySQL+PHP) 설치

  14. No Image 07Mar
    by JaeSoo
    2012/03/07 by JaeSoo
    Views 2936 

    아파치 리라이트(rewrite) 엔진과 워터마킹을 이용한 이미지 무단 링크 방지

  15. No Image 07Mar
    by JaeSoo
    2012/03/07 by JaeSoo
    Views 2919 

    .htaccess 사용해서 이미지 외부링크 막기

  16. No Image 07Mar
    by JaeSoo
    2012/03/07 by JaeSoo
    Views 3106 

    동영상 외부 링크 금지

  17. No Image 07Mar
    by JaeSoo
    2012/03/07 by JaeSoo
    Views 2630 

    .htaccess 를 이용한 이미지 핫링크 예방법

  18. APMSETUP + JSP

  19. No Image 12Jul
    by JaeSoo
    2012/07/12 by JaeSoo
    Views 1955 

    Windows용 아파치 설정하기 (쓰레드 설정)

  20. No Image 13Jul
    by JaeSoo
    2012/07/13 by JaeSoo
    Views 4744 

    Comparison of WAMPs (Windows, Apache, MySQL, PHP/Perl/Python)

Board Pagination Prev 1 2 3 4 Next
/ 4

PageViews   Today : 5754 Yesterday : 5037 Total : 21961806  /  Counter Status   Today : 5567 Yesterday : 4602 Total : 1188290

Edited by JAESOO

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소