[서블릿/JSP] 강의 정리 3 - application, session, cookie

별의개발자커비·2023년 8월 3일
0

JSP

목록 보기
30/31
post-thumbnail

- 이클립스가 제공해주는 서블릿 클래스 만들어주는 템플릿




결과

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 범주에서 쓸 수 있다.
즉, 현재 접속한 사용자 안에서만 = 접속자마다 달라진다. 캐비넷들 중에서 나만의 캐비넷

  • 브라우저가 다르면 다른 세션으로 인식하네
  • 브라우저가 같으면 창이 달라도 같은 세션으로 인식하고

28 - WAS가 현재사용자(Session)을 구분하는 방식

웹서버는 사용자(세션)를 어떻게 구분할까?
- 한번 왔다가야 세션아이디를 받고 그걸 계속 쓰게 됨

29 - Cookie를 이용해 상태값 유지하기


  • applcation
  • server

클라이언트에 저장할 수 있는 저장소

  • cookie

cookie 쿠키


  • request로 쿠키를 읽어서 씀

30 - Cookie의 path 옵션



  • 쿠키를 가져갔는가? request를 보면됨

  • 해당 경로의 주소를 요청했을 때만 쿠키가 가게 path를 제한할 수 있음

  • /add 라는 주소일 때만 쿠키가 가게 됨

31 - Cookie의 maxAge 옵션

브라우저가 닫히면 쿠키는? maxage를 설정하지 않으면 브라우저의 생존주기와 같아짐

  • 쿠키의 장점: 브라우저가 닫혀도 기간 내가 원하는 기간maxage을 설정해놓으면 그 기간만큼 존재한다는 것

  • 쿠키는 클라이언트의 이런 외부 파일에 저장되게 됨

  • maxAge 설정

32 - Application/Session/Cookie 정리

1. Application

2. Session

  • 특정 사용자가 쓸 수 있는 공간
  • 자원을 웹브라우저에 쓰기때문에 서버에 부담이 안감
  • url별로 데이터를 저장할 수 있다.
  • 서버의 생명주기와 상관없이 설정된 만료시간까지 클라이언트가 데이터를 가지고 있을 수 있음

Q1. 1년 동안 보관해야하는 데이터라면?

  • cookie: 기간이 길면 무조건 cookie

Q2. notice라는 데이터가 있는데 notice외에는 쓸 일이 없는 경우라면?

  • cookie: notice 주소에만 쓰면 되니까

+) pageContext/ request도 있네?

profile
비전공자 독학러. 일단 쌔린다. 개발 공부👊

0개의 댓글