회사관련 모든글

JSP의 기본객체들

NandaNanda 2024. 11. 7. 10:17

중요문서: https://gangzzang.tistory.com/entry/JSP-%EA%B8%B0%EB%B3%B8-%EA%B0%9D%EC%B2%B4-out-pageContext-application-page

출처: https://www.youtube.com/watch?v=e9V6J4Lu3p8&t=412s 

 

기본적으로 브라우저에서 서버로 요청을 보내면 request, response객체가 자동으로 생성된다. 

request객체:서버로 요청보내는 객체 

resposne객체: 브라우저에 응답하는 객체, 응답할 데이터를 저장하는 역할을 함. (참고로 out객체는 브라우저가 응답받을 수 있게 응답이라는 기능을 해주는 객체임)

pageContext객체: 기본객체들에 대한 접근을 가능하게 해주는 객체. 아래 그림과 같이 ServletResponse, ServletRequest와 같은 객체들을 반환받을 수 있는 메서드를 제공한다.ex) pageContext.getRequest()

application객체: 톰켓 서버가 작동하기 시작할 때 기본적으로 생성되는 객체. 서버가 시작될때 생성되어 서버가 종료될 때까지 남아있음. 

web.xml파일을 보면 위의 그림과 같이 초기화 파라미터 설정(initParam)이라는 부분을 볼수 있는데, 이 초기화 파라미터의 이름을 아래와 같은 메서드로 확인할 수 있는 것이다.

 

 

pageContext, request, session, application 이 4가지 기본객체들의 공통점은 데이터를 저장할 수 있다는 것이다.

내가 forwarding과제로 했었던 것중에 아래와 같이 getRequestDispatcher라는 함수를 사용한 적이 있는데 이것이 바로 요청의 흐름을 조작(RequestDispatcher)할 수 있는 객체를 얻는 함수인 것이다. 

pageContext, request, session, application 이 4가지 객체가 각각 언제까지 유지되는가를 파악하는 것이 중요하다. (https://www.youtube.com/watch?v=e9V6J4Lu3p8&t=412s  )

redirect하면 request객체가 새롭게 생성되지만 forwarding했을시에는 기존의 request, response객체가 그대로 남아있게 된다. pageContext객체는 말그대로 하나의 페이지를 가리키는 객체로, 만약 페이지가 변경되면 기존의 pageContext객체는 사라지게 된다. session객체는 하나의 브라우저를 사용했을시 생성되는 객체이므로 브라우저를 끄거나 새로운 브라우저를 생성하는 것이 아니라면 계속하여 남아있게 된다. application객체는 위에서 언급하였듯이 (톰켓)서버를 시작할때 생성되고 종료할시 사라지게 된다. 따라서 서버를 재시작 하지 않는 이상 계속 유지되는 객체이다.