Jquery Ajax


1. Jquery 통한 Ajax 구현


Jquery는 Ajax 기본으로 구현 가능 json(객체) 형식 사용

  • 01_ajax_get_csv.jsp // get방식 csv 데이터
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<script  type="text/javascript"  src="libs/jquery-1.9.1.min.js"> </script>

<script type="text/javascript">
	$(function(){

		var data = { cate : 'book', name : 'hong'};	 // 무조건 json형식으로(객체 형식으로)
		$.get("01_server.jsp",data,parseData);
    //get방식 전송	//jquery는 ajax 기본으로 사용가능 	// $.get("보내줄 위치","보낼 데이터","실행 할 함수","받아올 데이터 타입")
	});


  // 함수의 경우
	function parseData(strText){
    var ary = strText.split('|');   // 자바스크립트는 배열자동으로 잡아줌. 즉, ary에 strText 데이터 split되어 들어오므로 배열됨.  // |기준으로 분할되어 배열에 저장됨
		for(var i=0; i<ary.length; i++){
			var param = ary[i].split('=');	// '=' 기준으로 다시한번 split
			if(param[0].trim() == 'cate'){	// trim() 공백제거 해줘야함
				$('#cate').val(param[1]);
			}
			if(param[0].trim() == 'name'){
				$('#name').val(param[1]);
			}
		}
	}

</script>

</head>


<body>
서버로부터 넘겨받은 데이터<br/>
첫번째 데이터 : <input type="text" name="" id="cate"/><br/>
두번째 데이터 : <input type="text" name="" id="name"/><br/>
</body>
</html>


  • 01_server.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>


<%
	// 1. 이전 화면에서 넘겨받은 데이타
	String cate = request.getParameter("cate");
	String name = request.getParameter("name");

	// 2. 다시 화면으로 보낼 데이터 구성
	cate="서버로부터"+cate;
	name="from_server_"+name;
	out.write("cate="+ cate+"|name=" + name);

%>    


  • 02_ajax_post_csv.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
	<script  type="text/javascript"  src="libs/jquery-1.9.1.min.js"> </script>
<script type="text/javascript">
	$(function(){

		var data = { cate : 'book', name : 'hong'};	// 무조건 객체형식으로

		// 축약형
		$.post("02_server.jsp",data,parseData);	 
		//post방식 전송  //jquery는 ajax 기본으로 사용가능 	// $.get("보내줄 위치","보낼 데이터","실행 할 함수","받아 올 데이터 형식") // 받아 올 데이터 형식 기본값 =csv

	});

	function parseData(strText){
		var ary = strText.split('|');   // 자바스크립트는 배열자동으로 잡아줌. 즉, ary에 strText 데이터 split되어 들어오므로 배열됨.  // |기준으로 분할되어 배열에 저장됨
		for(var i=0; i<ary.length; i++){
			var param = ary[i].split('=');	// '=' 기준으로 다시한번 split
			if(param[0].trim() == 'cate'){	// trim() 공백제거 해줘야함
				$('#cate').val(param[1]);
			}
			if(param[0].trim() == 'name'){
				$('#name').val(param[1]);
			}
		}
	}

</script>

</head>


<body>
서버로부터 넘겨받은 데이터<br/>
첫번째 데이터 : <input type="text" name="" id="cate"/><br/>
두번째 데이터 : <input type="text" name="" id="name"/><br/>
</body>
</html>


  • 02_server.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<%
	// 1. 이전 화면에서 넘겨받은 데이타
	String cate = request.getParameter("cate");
	String name = request.getParameter("name");

	// 2. 다시 화면으로 보낼 데이터 구성
	cate="서버로부터"+cate;
	name="from_server_"+name;
	out.write("cate="+ cate+"|name=" + name);
%>    


  • 04_ajax_post_json.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
	<title></title>
	<script  type="text/javascript"  src="libs/jquery-1.9.1.min.js"> </script>
<script type="text/javascript">

	$(function(){

		var param = { cate : 'hello' , name :'hong'};

		$.ajax({
			type : 'post',
			data : param,
			url : "04_server.jsp",
			success : function (resText){	// javascript에서는 함수도 객체다(함수리터럴)
				var obj = {};
				obj = eval('(' + resText +")");
				$('#cate').val(obj.first);
			}
			// datatype => 받아올 데이터 형식이 json아님, 지정안해주면 기본으로 csv  (04_server.jsp 있는 내용들은 json처럼 보이게 해놓은것)
		});


		/* 	 함수리터럴에 의해 그냥 바로 넣어버림
		function parseData(){
			var obj = {};
			obj = eval('(' + resText +")");
			$('#cate').val(obj.first);
		}
		*/

	})

</script>
</head>

<body>
서버로부터 넘겨받은 데이터<br/>
첫번째 데이터 : <input type="text" name="" id="cate"/><br/>
두번째 데이터 : <input type="text" name="" id="name"/><br/>
</body>
</html>


  • 04_server.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<%	// 1. 이전 화면에서 넘겨받은 데이타
	String cate = request.getParameter("cate");
	String name = request.getParameter("name");

	// 2. 다시 화면으로 보낼 데이터 구성
	String result ="";

	result += "{";
	result += "'first' : "+ "'changed_"+cate+"_by_server" +"',";
	result += "'second' : "+ "'from_"+name+"_server'";
	result += "}";
	System.out.println(result);
	out.write(result);
%>