티스토리 뷰

반응형

jQuery, java 를 이용항 xml 데이터 post 전송 후 xml 형테 데이터를 결과로 return 받는 예제

 

* 처리순서 :  jQuery ajax 실행 -> java or jsp xml 구성 및 데이터 전송 -> 전송 후 처리결과 xml 로 받기

 

==================================== Example =====================================

 

function jsXmlFunc(){

$.ajax({ type: 'POST', url: "testUrl.do", //실행 JAVA URL dataType : 'xml', //return 형식 xml data : { u_memo:'xml 실행 메모' //보낼 테이터가 있다면 세팅 }, success: function(result) { //XML 데이터중 STATUS 변수값의 내용을 가져옴 if("OK" == jQuery(result).find("STATUS").text()){ alert("xml 전송 성공 하였습니다."); } else { alert("xml 전송 실패 하였습니다."); } }, error: function(result) { alert("error !"); } }); }

 

== 실행 결과 xml 샘플 ==

<!-- encoding 방식은 한글이 있는 경우 euc-kr 아니면 utf-8 -->

<?xml version="1.0" encoding="euc-kr"?>

<RESULT>

 <STATUS>OK</STATUS>

 <MSG>성공</MSG>

</RESULT>

 

//============================ Java 실행부분 =============================//


import java.net.HttpURLConnection; import java.net.URL; import java.net.URLConnection; @RequestMapping(value = "testUrl.do") public ActionForward testUrl(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response,Box box) throws Exception{ URL url = null; URLConnection urlcnn = null; HttpURLConnection httpurlcnn = null; //resoponse 결과 세팅용 BufferedReader bufferedReader = null; //xml 파싱 최종결과 받을 String String xmlPasingStr = ""; url = new URL(http://www.test.com/recive.do); //xml데이터를 post로 전송할 url urlcnn = url.openConnection(); //connection open httpurlcnn = (HttpURLConnection) urlcnn; httpurlcnn.setConnectTimeout(10000); //응답 없을시 timeout 설정 httpurlcnn.setDoInput(true); httpurlcnn.setDoOutput(true); httpurlcnn.setUseCaches(false); httpurlcnn.setDefaultUseCaches(false); httpurlcnn.setRequestMethod("POST"); //post 방식 전송 세팅 httpurlcnn.setRequestProperty("Content-Type","application/xml; charset=uft-8"); //xml 형태 데이터 요청 세팅 BufferedWriter wr = new BufferedWriter(new OutputStreamWriter(httpurlcnn.getOutputStream(), "UTF-8")); //xml 로 테이터 내보니 위한 객체 생성 //전송할 xml 데이터 String xmlData = ""; xmlData +=""; xmlData +="

"; xmlData +=""; xmlData +="홍길동"; xmlData +="25"; xmlData +="

서울특별시

"; xmlData +="
"; xmlData +="

"; xmlData +="

"; wr.write(xmlData); //완성된 xml 문서 buffer에 세팅 wr.flush(); //post 방식으로 해당 url로 데이터 전송 wr.close(); //buffer close //전송후 결과를 받기위해 inputStream 생성 InputStream inStream = httpurlcnn.getInputStream(); //전송 결과가 있는 경우 실행 if(null != inStream){ bufferedReader = new BufferedReader(new InputStreamReader(inStream)); String line = ""; //전송 받은 스트림의 line 별값 세팅 용 //읽어들일 line 이 있으면 실행 while ((line = bufferedReader.readLine()) != null){ xmlPasingStr += line; //line 별 결과는 연결해서 최종 string 생성 } } return getXmlView(response, xmlPasingStr); //읽어들인 String을 xml 형태로 출력 } //읽어들인 String xml 형태 변환 Java 함수 public void getXmlView(HttpServletResponse response, String xmlPasingStr) throws IOException { response.setContentType("text/xml;charset=UTF-8"); PrintWriter pw = response.getWriter(); pw.write(xmlPasingStr); pw.close(); }


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함