핵심 개념
- application scope
- session scope
- request scope
- page scope
각 변수를 특정범위 내에서 사용하기 위해서 scope를 알아야한다. 스코프는 크게 4가지가 있다.
- Application : 웹 어플리케이션이 시작되고 종료될 때까지 변수가 유지되는 경우 사용
- Session : 웹 브라우저 별로 변수가 관리되는 경우 사용하며 변수를 유지할 때도 사용하며 여러번 요청받아도 유지된다.
- Request : http요청을 WAS가 받아서 웹 브라우저에게 응답할 때까지 변수가 유지되는 경우 사용하며 한번의 요청동안 유지된다.
- Page : 페이지 내에서 지역변수처럼 사용
핵심 개념
- PageContext
jsp 페이지에서 pageContext라는 내장 객체로 사용 가능 하다.
사용방법은 Application scope나 Session scope, request scope와 같다.
한 페이지에서만 사용가능하기 때문에 forward로 보내면 변수가 사용 불가능하다.
지역변수처럼 해당jsp나 서블릿이 실행되는 동안에만 정보를 유지하고하 할 때 사용한다.
페이지 스코프는 지역변수로 선언한 변수와 별 차이가 없어서 잘 사용하지 않는다.
하지만 jsp에서 el이나 jstl표기법을 사용할 때 필요하다.
핵심 개념
- HttpServletRequest
- forward
- request.setAttribute()
- request.getAttribute()
http요청을 was가 받아서 웹 브라우저에게 응답할 때까지 변수값을 유지하고자 할 경우 사용한다.
한 번 응답한 경우 사라진다.
서블릿에서는 HttpServletRequest객체를 사용한다
JSP에서는 request 내장 변수를 사용한다
값을 저장할때는 setAttribute() 읽어들일 때는 getAttribute()를 사용한다.
forward시 값을 유지할 때 사용한다.
핵심 개념
- HttpSession
세션socpe은 웹 브라우저(클라이언트)별로 정보를 관리할 때 사용한다.
웹브라우저의 탭끼리는 세션정보가 공유된다. 예를들어 페이스북에 로그인한 뒤 새탭을 열고 페이스북에 접속하면 내가 로그인을 하지 않아도 로그인돼있다.
jsp에서는 session 내장 변수를 사용한다.
서블릿에서는 HttpServletRequest의 getSession()메소드를 이용하여 session 객체를 얻는다.
값을 저장할 때는 session 객체의 setAttribute()를 읽을 때는 getAttribute를 사용한다.
클라이언트가 요청한 후 응답을 하더라도 세션은 바로 사라지지 않는다. 특정조건(시간경과, 웹브라우저 창 닫기 등등...)을 프로그래밍 해야만 사라진다.
핵심 개념
- ServletContext
- setAttribute
- getAttribute
- 어플리케이션 스코프는 웹 어플리케이션이 시작되고 종료될 때까지 변수를 사용할 수 있다.
- 범위는 내가 만든 fristweb에서 어떤 클라이언트든 그 변수를 사용할 수 있다.
- jsp에서는 application 내장 객체를 이용한다.
- 서블릿의 경우는 getServletContext()메소드를 이용하여 어플리케이션 객체를 사용한다.
- 웹 어플리케이션 하나당 하나의 어플리케이션객체가 사용된다.
- 앞서 session과 같이 저장은 setAttribute 읽을 때는 getAttribute을 사용한다. 앞에 application이 붙는 것이 차이점이다.
- 모든 클라이언트가 공통으로 사용해야 할 값들이 있을 때 사용한다.
- 서블릿에서 실제로 사용할 때는 ServletContext application = getServletContext()로 한다.
'IT > 부스트코스' 카테고리의 다른 글
부스트코스 DB연결 웹앱#7 SQL (0) | 2020.01.30 |
---|---|
부스트코스 DB연결 웹앱 #6 EL,JSTL (0) | 2020.01.23 |
부스트코스 DB연결 웹앱 #4 redirect & forward (0) | 2020.01.21 |
부스트코스 DB연결 웹앱 #3 JS (0) | 2020.01.21 |
부스트코스 DB연결 웹앱 #2 WEB UI 개발- FE (0) | 2020.01.16 |