spring 리마인드

Spring 프레임워크 JavaScript, AJAX

LRWoo 2023. 10. 13. 18:05
728x90
반응형

라이브러리 의존성 

https://mvnrepository.com/search?q=jackson-databind 

jackson-databind  추가 

 

2.15.2 버전 복사해서  pom.xml 라이브러리 의존성 추가 

 

maven dependencies 확인 

root -context 변경 

Controller 패키지명 수정

web.xml 수정 

 

기존의 HomeController를 지우고  새로만들어서 서버가 잘동작하는지 확인

 

AJAX : Asynchronous JavaScript And XML
비동기 형식의 자바 스크립트와 XML을 이용한 통신 
실시간으로 수행되는 자바스크립트와 백엔드 사이의 통신 

 

 

현재는 xml을 거의 쓰지않고 json을 쓴다. 
html태그를 쓰지않는다.  페이지를 띄울 목적의 개념이 아니다.  
데이터를 잠깐  잠깐 받아오기 위한 통신
AJAX를 쓰지않더라도 JS의 이벤트 처리를 이용하면 페이지의 새로고침 없이 내용을 변경할 수 있다. 

 

<div class="content">
		<h3>AJAX를 쓰지 않더라도, JS의 이벤트 처리를 이용하면 페이지의 새로고침없이 내용을 변경할 수 있다. </h3>
		<button id="btn1">버튼1</button>
		<div id="div1"></div>
		
		<script>
			const btn1 = document.getElementById('btn1')
			btn1.onclick = function(){
				const div1 = document.getElementById('div1')
				div1.innerText = 'Hello' + num
				num++
			}
		</script>
	</div>

 

 

	<div class="content">
		<h3>백엔드(컨트롤러)에 데이터를요청하여 응답받고, 그 값을  문서에 반영하기 </h3>
		<button id="btn2">버튼2</button>
		<span id="span2"></span>
		
		<script>
			const btn2 = document.getElementById('btn2')
			btn2.onclick = function(){
				const url = '${cpath}/ajax2'	//요청할 주소를 지정한다.
				
				fetch(url)					//지정한 주소로 요청을 전송한다 (이후 컨트롤러 실행 )
				.then(resp => resp.text())	//서버가 응답을 반환하면 텍스트 형식으로 변환한다 
				.then(text => {				//해당 텍스트를 이용하여 아래코드를 수행한다.
					const span2 = document.getElementById('span2')	//문서의 span2를 불러와서
					span2.innerText = '서버에서 보낸 값 : ' + text			//글자를 넣는다. 
				})
			}
		</script>
	</div>

 

요청을 보내는 함수가 fetch 

서버에서 응답을 보내줘야 그다음에 (then) 뭔가를 할 수 있다. 

 

 

 

 

728x90
반응형