init() ↔ service() ↔ destroy()
이러한 servlet의 실행방식은 자원을 아낄 수 있다.
웹사이트에 접속했을 때 최초 실행 시 사이트 응답시간보다 이미 접속한 사이트에서 새로고침했을 때 응답시간이 빠른 게 이러한 생명주기로 인함
일반적인 java의 JVM은 프로젝트의 main에서 시작해 main의 명령어순서에 따라 자바파일들을 읽어가며 프로그램을 작동했다면
serlvet은 프로그램이 작동되기 전 먼저 프로젝트에 존재하는 모든 자바파일을 한번 읽고나서 프로그램을 작동시킨다.
init()에서 프로젝트 내 모든 java파일을 읽고 현재 사용중인 파일만 service()에서 사용됨.
프로젝트의 service()는 프로그램이 종료직전(destroy()가 실행되기 전까지) 계속 loop된다.
참고자료 : Servlet 생명주기
동적인 웹페이지를 만들기 위한 개발기법.
ajax를 사용하지않은 웹사이트는 서버와 통신하고나서 사이트가 로딩됨. 로딩이 끝난 사이트는 새로고침하지않는 이상 서버와 연결이 끊김.
새로고침 시 웹브라우저가 서버로 요청을 보내고 서버에서 응답이 돌아올때까지 웹브라우저는 사용할 수 없고 기다려야함.
웹페이지 전체를 새로고침하지 않고 일부분만 갱신할 수 있음. 사용자가 이용하고있는 웹브라우저에서는 서버의 응답을 기다리지않고도 다른 작업을 수행할 수 있음. 사용자에게 드러나지않고 백그라운드에서 지속해서 서버와 통신하는 것, 이런방식을 비동기방식이라고한다.
자바스크립트에서 XmlHttpRequest 객체를 이용하여 서버로 요청을 보낸다.
서버가 처리한 결과를 HTML, XML 또는 JSON 형태의 데이터로 웹 브라우저에 전달한다. 페이지 형식이 아닌 필요한 데이터만을 전달.
서버와 실시간 통신이 아니라 요청-응답하는 과정을 이미 로딩된 페이지에서 처리하는 것뿐임
ajax가 가장 많이 사용되는 건 게시글의 댓글기능!
서버와 상호작용하기 위하여 사용, XML만 사용하는게 아니라 대부분 종류의 데이터를 받아오는데 사용할 수 있음.
대부분의 웹브라우저에 내장되어 있는 request 객체로 ajax 비동기방식에서 사용되는 객체임
여기에 정리되어 있다.
readyState 해석
- UNSENT (숫자 0) : XMLHttpRequest 객체가 생성됨.
- OPENED (숫자 1) : open() 메소드가 성공적으로 실행됨.
- HEADERS_RECEIVED (숫자 2) : 모든 요청에 대한 응답이 도착함.
- LOADING (숫자 3) : 요청한 데이터를 처리 중임.
- DONE (숫자 4) : 요청한 데이터의 처리가 완료되어 응답할 준비가 완료됨.
참고자료 : TCPSCHOOL,
복습개념으로 ~,~