본문 바로가기

Server Oriented/Java & JSP

Ajax 로 한글 파라미터를 넘길때..

contentType : "application/json;charset=EUC-KR" 이렇게 부르면 UTF-8 전환 없어도..





http://warmz.tistory.com/670 Serialize 를 해서 넘겨주는 방법도 있네요..

A.jsp 에서 아래와 같이 사용하고..
$.ajax({
  url: 'B.jsp',
  type: 'POST',
  data: $('#form').serialize(),
  dataType: 'html',
  contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
  error: function(data) {
    ...
  },
  success: function(data) {
    ...
  }
}); 

B.jsp 에서 아래와 같이 사용..
String dataString = URLDecoder.decode(data,"UTF-8");

serialize 가 귀찮게 이것저것 기술하지 않아서 편리한 점도 있는데..
때로는 필요한 항목만 걸러서 보내야 할 때도 있어요, 이럴 때는 아래와 같이 파라미터를 일일이 기술해야 합니당..





 



A.jsp 에서 B.jsp 를 Ajax 로 호출할때 한글 파라미터를 넘기려면.. 아래와 같이 처리합니다.

A.jsp

< script >

...

var param1 = escape(encodeURIComponent(f.param1.value));

;

...

< /script >

B.jsp

< %@ page import="java.net.URLDecoder" % >

< %

String param1 = URLDecoder.decode(request.getParameter("param1"),"UTF-8");

% >

 

이때 B.jsp 는 JSP 자체의 인코딩이 무엇이든 상관 없다.





A.jsp 에서 jQuery Ajax 사용시
  $.ajax({
    type: 'POST',

    dataType: 'html', -- html, text, xml 등등.. 맘에 드는 걸로 골라 보셔요..
    url: 'B.jsp',
    data: 'param1='+f.param1.value+'&param2='+escape(encodeURIComponent(f.param2.value)),
    success:function(resultText){
      $(선택자).html('').html(resultText); // callback 자바스크립트 함수를 호출하도록 해도 되겠습니다. ^^.
    },
    error:function(){
    }
  });


상기 html('') 부분은 이전 내용을 clear 하라는 것.