웹에서 request(요청)이 들어오면 java파일이 생성되고 그 안에서 Servlet이 호출된다는 사실은 다들 알고 계시죠? 혹시나 모르신다면 아래 페이지를 먼저 읽고 와 주시기 바랍니다. 부족하지만 최선을 다해 정리해놨습니다.
🟰각 내장객체가 생성되는 시점
☀️Service가 생성되는 시점에 각 내장객체들이 생성됩니다. ☀️하지만 request는 HttpServletRequest에서 가져오게되는걸 볼 수 있습니다. 그러므로 request는 jsp페이지가 호출됨과 동시에 페이지의 값들을 가져오기 때문에 먼저 생성되어있다는 걸 확인할 수 있습니다!
🟰그림을 통해 알아보는 객체별 범위
📌pageContext
☀️클라이언트의 request를 통해, 하나의 JSP페이지가 response합니다. ☀️page영역은 해당 페이지 내에서만 객체를 공유합니다. ☀️redirect를 수행하면 pageContext 객체 내에 저장한 Attribute는 사라지게 됩니다.
📌request
☀️ reqeust를 받아 response까지 객체가 살아있는 영역 ☀️ foward또는 include를 사용하면, request요청 객체가 공유됩니다. ☀️fowardng 한 값들은 다른 페이지로 이동시에도 값이 유지됩니다.
📌session
☀️ 하나의 브라우저 당 1개가 생성 ☀️ 같은 브라우저 안에서 request에 응답한 페이지들은 같은 값을 공유합니다. ☀️ 브라우저가 종료될 경우 객체는 소멸됩니다.
📌application
☀️ 하나의 애플리케이션 당 1개가 생성 ☀️ 같은 애플리케이션 내에서 요청되는 페이지들은 서로 같은 값을 공유합니다. ☀️ 애플리케이션이 종료되면 객체가 소멸됩니다.