๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Front-End/AJAX

AJAX] ๋กœ๊ทธ์ธ

by bamDal 2022. 5. 27.

 

 

1. ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ, ๊ธฐ๋ณธ ์„ค์ • ์Šคํ”„๋ง๊ณผ ๊ฐ™์Œ
- project pacets , pom.xml  ๋ฒ„์ „
- web.xml ์ธ์ฝ”๋”ฉ
- server path

2. pom.xml ์— AJAX ํ†ต์‹ ์„ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ถ”๊ฐ€

๋ฉ”์ด๋ธ ๋ฆฌํฌ์ง€ํ„ฐ๋ฆฌ

 

Maven Repository: Search/Browse/Explore

NiFi Kerberos User Service API Last Release on May 26, 2022

mvnrepository.com

 

jackson ์ด๋ผ๊ณ  ๊ฒ€์ƒ‰ํ•˜๋ฉด 

์ด ๋‘๊ฐœ๋ฅผ pom.xml ์— ๋„ฃ์–ด์ค€๋‹ค.

๋ฒ„์ „์€ ๋‘˜ ๋‹ค 2.11.0 ์œผ๋กœ ํ–ˆ์Œ!

 

์˜ค๋Š˜์€ ๋น„๋™๊ธฐ ๋ฐฉ์‹์˜ ๋ฐ์ดํ„ฐ ์ „์†ก์„ ๋ณด๊ธฐ ์œ„ํ•ด ๊ฐ„๋‹จํ•œ ์ฝ”๋“œ ์ž‘์„ฑ ํ•˜๊ณ 
log๋ฅผ ์ฐ์–ด ๋ฐ์ดํ„ฐ ๊ฐ’์ด ์–ด๋–ป๊ฒŒ ๋“ค์–ด์˜ค๋Š”์ง€ ํ™•์ธํ•ด๋ณธ๋‹ค.

 

home.jsp

- ๋™๊ธฐ๋ฐฉ์‹
form ํƒœ๊ทธ์—์„œ action ์†์„ฑ๊ณผ method๋ฅผ ํ†ตํ•ด ์ „๋‹ฌ

	<h3>๋™๊ธฐ๋ฐฉ์‹</h3>
	<form action="login.do" method="post">
		<table>
			<tr>
				<th>ID</th>
				<td><input type="text" name="id" value=""/></td>
			</tr>
			<tr>
				<th>PW</th>
				<td><input type="password" name="pw" value=""/></td>
			</tr>
			<tr>
				<th colspan="2">
					<button>๋กœ๊ทธ์ธ</button>
				</th>
			</tr>
		</table>
	</form>

 

- ๋น„๋™๊ธฐ ๋ฐฉ์‹
form ํƒœ๊ทธ๊ฐ€ ์•„๋‹Œ jquery๋ฅผ ์ด์šฉํ•ด์„œ ์ „์†กํ•ด์ค€๋‹ค.

	<h3>๋น„๋™๊ธฐ๋ฐฉ์‹</h3>
		<table>
			<tr>
				<th>ID</th>
				<td><input type="text" id="id" value=""/></td>
			</tr>
			<tr>
				<th>PW</th>
				<td><input type="password" id="pw" value=""/></td>
			</tr>
			<tr>
				<th colspan="2">
					<button onclick="send()">LOG IN</button>
				</th>
			</tr>
		</table>

button onclick ์†์„ฑ์„ send() ํ•จ์ˆ˜๋กœ ๋ณด๋‚ด์ฃผ๊ณ 

<script>์—์„œ jQuery๋กœ send() ํ•จ์ˆ˜ ์ž‘์„ฑ

<script>
function send() {
	console.log("ajax ์ „์†ก");
	
	$.ajax({
		type:"post", // method = "post" ์™€ ๊ฐ™๋‹ค.
		url : "login.ajax", // action๊ณผ ๊ฐ™๋‹ค.
		data: {
			id: $("#id").val(),
			pw: $("#pw").val()
		}, //parameter , ๋ณต์ˆ˜ ๊ฐœ๋กœ ๋ฐ›๊ธฐ ์œ„ํ•ด object ์‚ฌ์šฉ
		dataType:"json",  //์–ด๋–ค ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋‚˜?
		success:function(data){
			console.log(data);
		}, // ์„ฑ๊ณตํ–ˆ์„ ๋•Œ ์‹คํ–‰ํ•  ๊ฒƒ. ์ต๋ช…๊ฐ์ฒด function!
		error:function(e){
			console.log(e);
		} // ์‹คํŒจํ–ˆ๋‹ค๋ฉด ์‹คํ–‰ํ•  ๊ฒƒ.
		
	});
}
</script>

๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด send() ํ•จ์ˆ˜ ์‹คํ–‰

  •   console.log("ajax ์ „์†ก");  // ์›นํŽ˜์ด์ง€ ์ฝ˜์†”์ฐฝ์— ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•ด์ค€๋‹ค.
  • $.ajax({ });  // ajax ์ž‘์„ฑ ๊ธฐ๋ณธ ๊ตฌ์กฐ
  • type : "post/get",  // formํƒœ๊ทธ์˜ method = "post/get" ๊ณผ ๊ฐ™๋‹ค. 
  • url : "login.ajax",   // form ํƒœ๊ทธ์˜ action = "login.do" ์™€ ๊ฐ™๋‹ค.
  • data : { key : value },  // parameter๋ฅผ object ํ˜•ํƒœ๋กœ ๋ฐ›์•„์˜จ๋‹ค.
    // data : { kdy : value } ์•ˆ์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ parameter๋ฅผ ๋ฐ›๊ธฐ ์œ„ํ•ด object๋ฅผ ์‚ฌ์šฉ
  • id : $('#id').val(), pw: $('#pw').val()   // ์œ„์— table์—์„œ id=id , id=pw ๋ผ๊ณ  ์ง€์ •ํ•ด์ฃผ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— #id, #pw๋กœ ๋ถˆ๋Ÿฌ์˜ค๋ฉฐ, 
    // .val()์„ ํ†ตํ•ด์„œ value ๊ฐ’๋งŒ ๊ฐ€์ ธ์˜จ๋‹ค.
  • dataType: "json",  // json ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š”๋‹ค. ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ์ž๋™ ์ถ”์ธก
  • success : function(data) { }, // ์„ฑ๊ณตํ–ˆ์„ ๋•Œ ์‹คํ–‰ํ•  ๊ฒƒ. function์€ ์ต๋ช…๊ฐ์ฒด(????)
  • error : function(e) { }  // ์‹คํŒจํ–ˆ์„ ๋•Œ ์‹คํ–‰ํ•  ๊ฒƒ.

 

HomeController.java

	@RequestMapping(value = "/login.do")
	public String formLogin(@RequestParam String id, @RequestParam String pw) {
		logger.info("๋™๊ธฐ๋ฐฉ์‹ : {} / {}",id,pw);
		return "home";
	}
	
	// controller ๋„ ๋น„๋™๊ธฐ์— ๋งž๊ฒŒ ๋ณ€๊ฒฝํ•ด์ค˜์•ผ ํ•จ.
	//1. response ๊ฐ์ฒด๋ฅผ ์ด์šฉํ•ด ์‘๋‹ตํ•ด ์ค˜์•ผ ํ•จ
	//2. javascript๊ฐ€ ์•Œ ์ˆ˜ ์žˆ๋Š” ํ˜•ํƒœ๋กœ ์‘๋‹ตํ•ด์ค˜์•ผ ํ•œ๋‹ค. (array, object)
	//์œ„ ๋‚ด์šฉ์„ ์‰ฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์กด์žฌํ•œ๋‹ค.
	@RequestMapping(value = "/login.ajax")
	@ResponseBody //response๋ฅผ ์ด์šฉํ•ด์„œ ๊ฐ’์„ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋‹ค.
	public HashMap<String, Object> ajaxLogin(@RequestParam String id, @RequestParam String pw) {
		logger.info("๋น„๋™๊ธฐ๋ฐฉ์‹ : {} / {}",id,pw);
		
		//{"msg":"๋กœ๊ทธ์ธ์— ์„ฑ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค."} <- js object / HashMap
		HashMap<String, Object> map = new HashMap<String, Object>();
		map.put("msg", "๋กœ๊ทธ์ธ์— ์„ฑ๊ณต ํ–ˆ์Šต๋‹ˆ๋‹ค.");
		map.put("success", true);
		map.put("code", 200); 
		
		return map;
	}

์œ„๋Š” ๋™๊ธฐ๋ฐฉ์‹

์•„๋ž˜๋Š” ๋น„๋™๊ธฐ ๋ฐฉ์‹

  • ๋™๊ธฐ ๋ฐฉ์‹์€ request๋ฅผ ์ด์šฉํ•ด์„œ ๋ฐ์ดํ„ฐ ๊ฐ’์„ ์ „๋‹ฌํ•˜๊ณ 
  • ๋น„๋™๊ธฐ ๋ฐฉ์‹์€ response๋ฅผ ์ด์šฉํ•ด์„œ ํŽ˜์ด์ง€์— ์ ๋Š”๋‹ค (???)
  • @ResponseBody   // response๋ฅผ ์ด์šฉํ•ด์„œ ๊ฐ’์„ ์ „๋‹ฌํ•œ๋‹ค.
  • public HashMap<String, Object> ajaxLogin(@RequestParam String id, @RequestParam String pw) { } 
    // ajaxLogin ์ด๋ž€ ์ด๋ฆ„์˜ ๋ฉ”์„œ๋“œ๋Š” HahMap ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ๋ฐ˜ํ™˜(return)๋ฐ›๊ณ , String ํƒ€์ž… parameter ์ธ id, pw๋ฅผ ๋ฐ›์•„์˜จ๋‹ค.
  • {"msg":"๋กœ๊ทธ์ธ์— ์„ฑ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค."} ๋Š” js์˜ object ํ˜•ํƒœ ์ด๋‹ค. ์ด๋ฅผ ๋ฐ›์•„์˜ค๋ ค๋ฉด HashMap์„ ์‚ฌ์šฉํ•ด์ค˜์•ผํ•˜๋ฏ€๋กœ 
  • HashMap<String, Object> map = new HashMap<String, Object>();  //HashMap์„ ๊ฐ์ฒดํ™”ํ•ด์คŒ
  • map.put("msg", "๋กœ๊ทธ์ธ์— ์„ฑ๊ณต ํ–ˆ์Šต๋‹ˆ๋‹ค.");
    map.put("success", true);
    map.put("code", 200);         // map ์— objec ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์–ด์ค€๋‹ค.
  • return map;                         // map์„ ๋ฐ˜ํ™˜

 

๋น„๋™๊ธฐ๋ฐฉ์‹ ๋ฒ„ํŠผ ๋ˆ„๋ฅด๋ฉด ๋‚˜์˜ค๋Š” ์ฝ˜์†” ์ฐฝ

 

 

'Front-End > AJAX' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

AJAX] Ajax๋ž€? ???  (0) 2022.05.27