JSP / SERVLET의 SCOPE

한장민·2022년 6월 26일
0
post-thumbnail

JSP와 SERVLET을 사용한 세미 프로젝트를 진행하면서 아직 request와 session의 개념을 잘 모르는 것 같아서 정리하고자 한다.

1) PAGE SCOPE

2) REQUEST

클라이언트의 요청이 처리되는 동안 유효한 값. forward되는 동안 값을 유지하기 때문에 웹 브라우저에 response할 때까지 변수값을 유지한다. 하지만 리다이렉트를 하게되면 reqeust는 삭제된다.

값을 저장할 때는 request 객체의 setAttribute() 메소드를, 값을 가져올 때는 getAttribute() 메소드를 사용한다. jsp파일에서 request.getAttribute로 가져온 값의 자료형은 object이기 때문에, 사용할 자료형으로 형변환하여 사용해야 한다.

3) SESSION

session 객체가 생성되고 소멸될 때까지 유효한 값. request는 하나의 요청과 응답이 나갈 때까지이지만, session은 하나가 아닌 여러 개의 요청이 들어와도 계속 남아있다.

웹 브라우저 별로 변수를 관리하고자 할 경우 사용한다. 웹 브라우저를 클라이언트라고 지칭하는데, 하나의 클라이언트마다 session 객체를 만들어서 관리하는 것이다. 웹 브라우저의 탭 간에는 세션정보가 공유되기 때문에, 각각의 탭에서는 같은 session정보를 사용할 수 있다.

session은 request와 다르게 하나의 request가 끝나고 계속 유지된다. 미리 지정한 시간이 초과되거나, 탭이 닫히는 경우에 session이 종료된다.

Servlet에서는 request.getSession() 메소드를 이용하여 객체를 얻는데, 이때 request의 메소드를 사용하는 이유는 session 객체가 어떤 클라이언트의 요청인지 알아야 하기 때문이다.

값을 저장할 때, 가져올 때는 session객체의 setAttribute(), getAttribute()메소드를 사용한다.

쇼핑몰의 장바구니는 유저별로 유지되어야 하는 정보가 다르다. 그런 사례를 생각하면 될 것 같다. 혹은 로그인 정보와 같은 user 정보를 공유하기 위해서도 사용된다.

4) APPLICATION

profile
HAAN YJGB

0개의 댓글