상세 컨텐츠

본문 제목

tomcat 3.2.1 에서의 한글문제 패치

프로그래밍/시스템, 서버구축

by 라제폰 2009. 1. 5. 12:50

본문

tomcat 3.2.1 버전에서
getParameter를 사용할 때 한글이 안되는 부분을 패치했습니다.

TOMCAT_HOMT\lib\webserver.jar를 복사하면 됩니다.

GET 이나 POST 를 올릴 경우
<%@ page contentType="text/html; charset=????" %>
에 지정된 문자코드로 인코딩을 합니다.
8859_1, euc-kr 등 인코딩에 상관없이 browser에서 정상적으로 한글이 표시됩니다.

get이든 post든 url 주소 뒤에 붙혀서 한글을 입력하든
어떤 경우이던 한글 처리가 정상적으로 됩니다.
한글파라미터도 인식합니다.
단 multipart/form-data일 경우는 예전과 같이 올린 그대로 stream으로 들어옵니다.
(8859_1)

contentType이 8859_1 나 euc-kr만 테스트 했습니다.

8859_1일 경우 javabean내에서 한글을 적을 경우 반드시 8859_1으로 컴파일 해야 됩니다.
(javac -encoding 8859_1 Bean.java)
내부적으로 한글은 전부 8859_1로 인코딩됩니다.
그리고 mysql jdbc driver의 인코딩 옵션을 8859_1로 하면 mysql 디비에 정상적으로
완성형 문자가 입력됩니다.

euc-kr일 경우 javabean내에서 한글을 적을 경우 반드시 default로 컴파일
(javac Bean.java식) 해야 됩니다.(euc-kr)
mysql jdbc driver의 인코딩 옵션을 euc-kr로 하세요.

일반적으로 <%@ page contentType="text/html; charset=euc-kr" %>로 지정하시면 됩니다.
주의: 반드시 위 라인이 맨 윗줄에 있어야 합니다.
서블릿에서는 setContentType이후 부터 지정된 문자셋으로 인코딩됩니다.

테스트 예제) 아래와 같은 경우 테스트 해 보았습니다.
(기억이 잘 안나서 제대로 적었는지 모르겠군요,
jdbc는 mm.mysql입니다(맞나?). useUnicode사용 encoding으로 euc-kr)

test.jsp
<%@ page contentType="text/html; charset=euc-kr" %>
<%=request.getParameter("name")%>
<%=request.getParameter("한글파람")%>
<% out.println("한글실험"); %>
한글라인실험
<jsp:useBean id="bean" class="Bean" scope="session" />
<jsp:setProperty name="bean" property="*" />
<jsp:getProperty name="bean" property="name" />
<jsp:getProperty name="bean" property="한글파람" />
<%=bean.getName()%>
<% bean.writeDB(); %>
<%=bean.getDB()%>

url 예제>

test.jsp?name=한글&한글파람=한글2

<form action="test.jsp" method="get">
<input type="text" name="name">
<input type="text" name="한글파람">
<input type="submit">
</form>

<form action="test.jsp" method="post">
<input type="text" name="name">
<input type="text" name="한글파람">
<input type="submit">
</form>


의문사항이 있을 시 연락처 : lightwind@orgio.net

    from Kim sang moon


관련글 더보기