scope :
session 으로 받은 정보를 잃어버리지 않게 계속 유지할 수 있도록 정보를 담는 jsp / servlet 내장 객체이다. 종류에는 page, request, session, application 이 있는데 모두 setAttribute, getAttribute, removeAttribute 를 가지고 있다. 하지만 4종류 모두 정보를 저장하고 꺼낼 수 있는 객체이지만 객체를 저정하는 시간이 다르다.
- page = jsp 페이지에서만 적용가능하고 해당 페이지에서만 유효하다 즉, 페이지 내에서 지역변수처럼 사용 가능 하다.
- application = 웹 애플리케이션이 시작되고 종료될 때까지 변수가 유지되는 경우 사용한다. 모든 클라이언트에게 공통적으로 무언가를 보여 줄 때 사용 하지만 이 방식은 클라이언트의 정보를 오랜시간 가지고 있어 보안상 이슈가 있다.
- request = http 요청을 WAS 가 받아서 웹 브라우저에게 한 요청을 응답 할 때 까지 그 한번만 유지 된다.
- session = 세션이 종료 되어 무효가 될 때까지 가능하다.
request.setAttribute 와 session.setAttribute 차이
우리가 분명히 jsp와 servlet 을 할 때는 요청한 값을 담는 다는 의미로 request.setAttribute("list", alist) 같은 방식을 사용 했었는데 왜 session을 하면서 session.setAttribute("param1" , "value1") 의 형태로 지정해 주는 것일까?
session과 request의 큰 차이는 얼마만큼의 기간 동안 값을 유지 하고 있는가이다. session은 클라이언트의 요청이 시작 되는 순간부터 그 세션을 종료 한다는 메서드를 만나게 될 때 까지의 시간 동안에 정보를 가지고 있지만 request는 한번의 요청과 응답이 가는 순간 이후 사라지게 된다.
그렇게 때문에 아이디와 같이 긴 시간 정보를 유지해야 하는 것에는 session으로 정보를 담고
session.setAttribute("loginId", id)
메세지 및 리스트보기 등 단기간동안만 필요 한 것은 reqeust 에 정보를 담는다.
request.setAttribute("msg", "로그인 실패");
'MVC > 세션과 쿠키' 카테고리의 다른 글
쿠키(Cookie) 기초 (0) | 2023.03.31 |
---|---|
세션(session)을 이용하여 회원 가입 시 아이디 중복 체크 (0) | 2023.03.31 |
세션(Session) 기초 (0) | 2023.03.30 |
쿠키(Cookie)와 세션(Session) (0) | 2023.03.30 |