Apache 2 가 자꾸 GET 방식의 파라미터 인코딩을 변경합니다.
글쓴이: kwon37xi / 작성시간: 월, 2005/09/05 - 5:56오후
Apache 2 + Tomcat 5.0.28 을 깔았습니다. mod_jk 1.2로 연동되어 있습니다. JkMount /*.jsp
헌데, 아파치 2가 자꾸 GET 방식으로 보내온 파라미터의 인코딩(encoding, charset, 문자셋)을 변경합니다.
Apache 2는 90 포트로(임시로..) 톰캣은 8080인데요,
GET 방식으로 URL인코딩을 하건(?p=%C7%D1%B1%DB) 그냥 한글을 쓰던(?p=한글)간에 무엇인가 다른 인코딩으로 바뀐 상태로 JSP에 전달됩니다.
POST 방식의 경우에는 전혀 문제 없고요, 물론 8080 포트를 통해 직접 Tomcat에 접속할 때도 문제 없습니다.
Tomcat은 server.xml 에 URIEncoding="EUC-KR" 이 설정되어 있습니다.
httpd.conf 에는
AddCharset EUC-KR .euc-kr AddDefaultCharset EUC-KR
아파치 2의 경우에는 mod_url 을 깔았다가 지웠습니다. mod_url.so 파일 자체를 완전 삭제하고 재시작했습니다.
다음 JSP를 통해서 아파치를 통해(90포트)로 테스트를 해 보면 Post 방식을 제외하고는 한글이 모두 깨집니다.
<%@ page contentType="text/html; charset=euc-kr" import="java.net.*"%> <% request.setCharacterEncoding("euc-kr"); String p = request.getParameter("p"); %> <html> <head> <title>aa</title> </head> <body> <a href="test.jsp?p=<%=URLEncoder.encode("한글","euc-kr")%>">한글 GET EUC_KR Encoded</a> <br> <a href="test.jsp?p=한글">한글 GET</a> <br> <form action="test.jsp" method="post"> <input type="hidden" name="p" value="한글"> <input type="submit" value="한글 Post"> </form> <br> 값 : <%= p %> </body> </html>
Forums:
이래저래 하다가 해결했습니다.[code:1] <Conn
이래저래 하다가 해결했습니다.
톰캣 5.x의 경우에는 mod_jk.so 와 연결 부분에도 URIEncoding을 지정해야만 합니다.
mod_url.so 와도 아무 문제 없이 되는군요.
http://kwon37xi.egloos.com
댓글 달기