ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 톰캣에서 GET방식 파라미터를 위한 인코딩 처리하기
    개발 관련/JSP 2012. 3. 2. 17:13
    GET 방식으로 파라미터 전송 시 인코딩 결정 규칙
     GET 방식 이용 시 파라미터 전송 방법  인코딩 결정
     1. <a> 태그의 링크 태그에 쿼리 문자열 추가  웹 페이지 인코딩 사용
     2. HTML 폼(form)의 method 속성값을 "GET"으로 지정해서 폼을 전송  웹 페이지 인코딩 사용
     3. 웹 브라우저에 주소에 직접 쿼리 문자열 포함한 URL 입력  웹 브라우저마다 다름

    3번의 경우가 문제인데
    IE이나 FF의 경우 EUC-KR 캐릭터 셋을 이용해서 인코딩을 하는 반면
    사파리나 크롬의 경우는 UTF-8 캐릭터 셋을 이용해서 인코딩을 한다.
    그래서 GET 방식으로 전달되는 파라미터 값을 인코딩 할 때 브라우저 마다 다르기 때문에
    표준 인코딩 규칙을 정해야 한다.

    GET 방식으로 전송되는 파라미터의 경우
    request.setCharacterEncoding("UTF-8"); 이 적용되지 않는다.

    방법은
    1. server.xml 파일에서 <Connector>의 useBodyEncodingForURI 속성의 값을 true로 지정한다. 
      ex) <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" useBodyEncodingForURI="true" />
      - 위와 같이 지정하면 GET 방식으로 전달된 파라미터 값을 읽어 올때
         request.setCharacterEncoding() 메서드로 지정한 캐릭터 셋이 적용 된다. 
    2. server.xml 파일에서 <Connector>의 URIEncoding 속성의 값으로 원하는 캐릭터 셋을 지정한다.
      ex) <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" /> 
      - 위와 같이 지정하면 GET 방식으로 전송된 파라미터 값은 항상 euc-kr로 처리된다.




    출처: 최범균의 JSP 2.1 웹프로그래밍
    사이트:   http://cafe.daum.net/javacan




     

     

     

     

    '개발 관련 > JSP' 카테고리의 다른 글

    String 클래스가 제공하는 메서드  (0) 2012.03.06
    response 기본 객체  (0) 2012.03.02
    request 파라미터 메서드  (0) 2012.02.29
    request 클라이언트 정보  (0) 2012.02.29
    MS-SQL JDBC 2.0  (0) 2012.02.06
Designed by Tistory.