[ JSP ] 페이지간 이동을 돕는 Binding

duck-ach·2022년 10월 21일
1

JSP

목록 보기
11/14
post-thumbnail

StateLess

우리가 처음 웹 페이지를 이동하면 StateLess상태이다.
StateLess 상태는 현재페이지는 이전페이지에서 어떤 정보가 어떻게 돌아갔는지 정보가 전혀 없다는 상태이다.

Binding(바인딩)

속성(Attribute)에 정보를 저장하고 사용하는 것을 말한다.

총 3개의 영역을 사용하는데, ServletContext, HttpSession, HttpServletRequest 영역을 사용한다.
1)ServletContext : 애플리케이션(프로젝트 내부 어디서든 종료 전까지 접근해서 사용이 가능하다. (ex. 방문자 수 등 서비스 망할 때 까지 사라지지 않는다.)
2)HttpSession : 실행중인 웹 브라우저 종료 전까지 접근해서 사용이 가능하다.
3)HttpServletRequest : 응답 전까지 접근해서 사용이 가능하다. (한번의 요청은 한번의 응답으로 끝)

Binding 사용 메소드

getAttribute('속성') : 해당 속성 값 가져오기
setAttribute('속성', '값') : 속성에 값 저장하기(값은 Object 타입으로 저장. getter에서 값 가져올 때 캐스팅해서 사용하면 된다.
removeAttribute('속성' : 해당 속성 삭제하기

Servlet Context

ServletContext ctx = getServletContext(); // 또는 request.getServletContext();
ctx.setAttribute("a", 1); a에 1을 저장

HttpSession(로그인 구현할 때 많이 사용하는 것 굉장히 중요)

HttpSession session = request.getSession();
session.setAttribute("b", 2); // b에 1을 저장

HttpServletRequest

request.setAttribute("c", 3); // C에 3을 저장

Session 이란?

  • 서버 메모리에 저장되는 정보이다. (서버에 저장되므로 쿠키와 달리 보안에 유리하다)
  • 웹 페이지들에서 참조해야 하는 공유 정보를 저장해두고 사용하기 위해 세션을 활용할 수 있다.
  • 유효 시간을 가진다.(기본 30분)
  • 브라우저 당 하나의 세션이 생성된다(세션ID를 통해 각 세션을 구분한다.)
  • 로그인 구현과 같은 기능은 브라우저를 끄면 로그인이 풀리게 되어야 하므로 Session 영역에 저장하므로 알아두어야 할 아주 중요한 개념이다.

Session 실행과정

  1. 브라우저로 특정 사이트 접속
  2. 접속한 브라우저의 세션 객체 생성
  3. 생성된 세션 객체의 ID를 브라우저에 응답
  4. 브라우저는 서버로부터 받은 세션 ID를 세션 쿠키 형태로 저장한다.(쿠키명 JSESSIONID)

Session 생성

  • 세션은 HttpSession 클래스 객체임
  • 세션은 HttpServletRequest 클래스 객체의 getSession() 메소드를 호출해서 생성함

HttpServletRequest 클래스의 Session 생성 메소드

HttpSession getSession() : 기존의 세션 객체가 존재하면 해당 세션 객체를 반환한다. 없으면 새로 생성한 세션 객체를 반환한다.
HttpSession getSession(boolean arg) : 기존의 세션 객체가 존재하면 해당 세션 객체를 반환한다. true인 경우 세션 객체가 없으면 새로 생성한 세션 객체를 반환한다. false인 경우 세션 객체가 없으면 null을 반환한다.

HttpSession 주요 메소드

long getCreateTime() : 세션이 생성된 타임스탬프(Timestamp)값 반환한다.
String getId() : 세션에 할당된 고유 식별자 반환한다.
void invalidate() : 현재 생성된 세션을 소멸시킨다.
void setMaxInactiveInterval(int interval) : 세션 유지 시간을 초 단위로 설정한다.

profile
자몽 허니 블랙티와 아메리카노 사이 그 어딘가

1개의 댓글

comment-user-thumbnail
2023년 12월 19일

그림이 너무 귀여워요.. 잘읽었습니다!

답글 달기