GET과 POST 방식이 조금 달라요ㅎ

(방식이 다른이유는  GET방식의 경우 파라미터값을 URL 주소와 함께 오기 때문에 조금 달라요) 


POST 방식 인코딩 처리


POST방식은 URL 뒷부분이 아닌 몸통(데이터 영역)에서 파라미터값이 전달 되기 때문에 

setCharacterEncoding 함수로 처리해 주면 됩니다ㅎ

request.setCharacterEncoding("utf-8");
String name = request.getParameter("name");




GET 방식 인코딩처리  


우선  GET방식에서 속성(파라미터)값이 전달 될때는 URL 과 함께 전달 되기 때문에


POST 방식처럼 바로 인코딩 함수로 처리가 힘들어요ㅎ 

GET 방식은 2가지 방법으로 인코딩 처리를 할 수 있어요.


1방법

톰캣설치디렉터리/conf/seraver.xml 파일 또는 아래 화면과 같이 개발도구에서 [빨간네모] 부분인

server.xml 에서 

 
<Connector port="8080" protocol="HTTP/1.1"
  				ConnectionTimeout="20000"
  				redirectPort="8443"/>






<Connector>태그에서 useBodyEncodingForURI 속성값을  true 로 추가해주세요.



<Connector port="8080" protocol="HTTP/1.1"
  				ConnectionTimeout="20000"
  				redirectPort="8443"
      useBodyEncodingForURI="true" />



useBodyEncodingForURI 속성값이 true 가 되면 GET방식으로 값을 가져올때 request.setCaharacterEncoding() 메서드로 케릭터 셋이 적용할 수 있어요ㅎ



그후 GET방식으로 파라미터값을 가져올때

request.setCharacterEncoding("utf-8");

String name = request.getParameter("name");   


이런식으로 읽어올 수 있어요 ㅎ


2번째 방식

server.xml 파일에서  useBodyEncodingForURI 속성 대신

URIEncoding 속성을 사용 할 수 있어요

<Connector port="8080" protocol="HTTP/1.1"
  				ConnectionTimeout="20000"
  				redirectPort="8443"
      URIEncoding="true" />



 

URIEncoding 속성을 사용할 경우 GET방식으로 파라미터 값을 읽을때 항상 이 속성에서 지정한

값으로 처리를 해주죠 대신 2번째 방법을 하시면 setCharacterEncoding 은 적용되지 않아요

  String name = request.getParameter("name");


바로 이런식으로 사용하시면 되는거죠









+ Recent posts