Get 방식으로 파라미터 전송 시 인코딩 결정 규칙
A tag, get 방식은 웹 페이지 인코딩을 사용하지만 주소창 입력은 웹브라우저 마다 인코딩 방식이 다르다. Get 방식으로 전달되는 파라미터 값에 대한 표준 인코딩 규칙이 정해져 있지 않기 때문에 WAS마다 파라미터 값을 읽어올 때 사용하는 기본 캐릭터 셋도 다르다.(tomcat6.0은 기본적으로 ISO-8859-1)
또한 get 방식으로 전송된 파라미터에 대해서는 request.setCharacterEncoding() 메서드가 적용되지 않는다.
서블릿 규약에 따르면 setCharacterEncoding() 메서드는 HTTP 프로토콜의 데이터 영역을 인코딩 할 때 사용한 캐릭터 셋을 지정할 때 사용된다.
톰캣에서 Get방식 파라미터를 위한 인코딩 처리하기
Server.xml 파일에서 <Connector>의 useBodyEncodingForURI 속성의 값을 true로 지정하는 방법
Server.xml 파일에서 <Connector>의 URIEncoding 속성의 값으로 원하는 캐릭터 셋을 지정하는 방법
useBodyEncodingForURI 속성을 적용하면 get방식으로 파라미터 값을 읽어올 때 setCharacterEncoding() 메서드로 지정한 캐릭터 셋이 적용된다.
URIEncoding 속성을 적용하면 setCharacterEncoding() 메서드로 지정한 캐릭터 셋은 적용되지 않는다.
기본 적용시
A href:문자열 깨짐
Get 방식:문자열 깨짐
Post 방식 request.setCharacterEncoding() 메서드가 선언되어 있지 않으면 받는 쪽에서는 문자열이 깨짐
주소창 입력:문자열 깨짐
useBodyEncodingForURI 적용시
a href: request.setCharacterEncoding() 메서드가 선언되어 있지 않으면 받는 쪽에서는 문자열이 깨짐
get방식: request.setCharacterEncoding() 메서드가 선언되어 있지 않으면 받는 쪽에서는 문자열이 깨짐
post방식: request.setCharacterEncoding() 메서드가 선언되어 있지 않으면 받는 쪽에서는 문자열이 깨짐
주소창 입력: request.setCharacterEncoding를 선언해도 깨짐(ie, firefox)
URIEncoding=UTF-8 적용시
A href:정상
Get:정상
Post: request.setCharacterEnding을 선언하지 않으면 깨짐
주소창 입력: request.setCharacterEncoding을 선언하여도 깨짐(ie,firefox)
참고
http://minslovey.tistory.com/tag/useBodyEncodingForURI
http://www.okjsp.pe.kr/seq/62578
http://blog.naver.com/yhcyksyh/40057257709
최범균의 JSP 2.1 웹프로그래밍, 최범균, 가메출판사
[출처] GET, POST 인코딩 결정 규칙|작성자 쿠쿠
'Back-End > JSP' 카테고리의 다른 글
tomcat 실제 deploy경로, _jsp.java 파일 경로, jsp컴파일 경로. (0) | 2015.07.22 |
---|---|
톰켓포트 죽이기 (0) | 2013.03.18 |
Jsp 게시판 뒤로가기 관련 문제 [출처] Jsp 게시판 뒤로가기 관련 문제|작성자 자몽 (0) | 2012.09.14 |
jQueryTree) ArrayList이용해서 트리메뉴 뿌리기 (0) | 2012.09.10 |
서블릿 매핑!! (0) | 2012.03.05 |