- 이클립스가 제공해주는 서블릿 클래스 만들어주는 템플릿
결과
24 - 입력 데이터 배열로 받기
* 상태 유지를 필요로 하는 경우와 구현의 어려움
- Servlet Context
1번 서블릿에 대한 요청이 있었을 때: 자기 일을 할 때 결과값이 메모리에 잠깐 있다 사라짐
- 즉, 1번이 실행했던 값을 2번이 받아서 처리하는 등의 일은 하지 못함
- 따라서, 서블릿을 사용할 때, 그들간의 또는 자신간의 데이터를 이어갈 수 있는 저장소가 필요한데, 그 저장소로 사용하는 게 바로 서블릿 context
- 말그대로, 문맥 (context): 이어갈 수 있도록해주는 역할
- 서로간에 자원을 공유할 수 있는 저장소
= application 저장소
- 어플리케이션을 만들다보면 어플리케이션에 사용되는 API들 중에 context라고 이름이 되어있는 게 있는데,
서블릿 context를 웹 어플리케이션에서는 application 저장소라고 하기도 함
26 - Application 객체와 그것을 사용한 상태 값 저장
웹어플리케이션의 특성
ServletContext
= 어플리케이션 저장소임
- setAttribute, getAttribute로 값 저장, 가져오기
27 - Session 객체로 상태 값 저장하기(vs Application 객체와의 차이점)
- setAttribute, getAttribute로 값 저장, 가져오기
1. Session vs Application 객체 차이점
- Application
그 객체를 쓸 때, 어플리케이션 전역에서 쓸 수 있다.
모든 서블릿이 전역적으로 쓸 수 있는 전역 공간이다.
- Session
session 범주에서 쓸 수 있다.
즉, 현재 접속한 사용자 안에서만 = 접속자마다 달라진다. 캐비넷들 중에서 나만의 캐비넷
- 브라우저가 다르면 다른 세션으로 인식하네
- 브라우저가 같으면 창이 달라도 같은 세션으로 인식하고
- cookie
28 - WAS가 현재사용자(Session)을 구분하는 방식
웹서버는 사용자(세션)를 어떻게 구분할까?
- 한번 왔다가야 세션아이디를 받고 그걸 계속 쓰게 됨
29 - Cookie를 이용해 상태값 유지하기
클라이언트에 저장할 수 있는 저장소
cookie 쿠키
- request로 쿠키를 읽어서 씀
30 - Cookie의 path 옵션
31 - Cookie의 maxAge 옵션
브라우저가 닫히면 쿠키는? maxage를 설정하지 않으면 브라우저의 생존주기와 같아짐
32 - Application/Session/Cookie 정리
1. Application
2. Session
- 특정 사용자가 쓸 수 있는 공간
3. cookie
- 자원을 웹브라우저에 쓰기때문에 서버에 부담이 안감
- url별로 데이터를 저장할 수 있다.
- 서버의 생명주기와 상관없이 설정된 만료시간까지 클라이언트가 데이터를 가지고 있을 수 있음
Q1. 1년 동안 보관해야하는 데이터라면?
- cookie: 기간이 길면 무조건 cookie
Q2. notice라는 데이터가 있는데 notice외에는 쓸 일이 없는 경우라면?
- cookie: notice 주소에만 쓰면 되니까
+) pageContext/ request도 있네?