웹(JSP기본 객체와 영역)

제이·2023년 4월 25일
0

목록 보기
9/15
post-thumbnail

JSP기본 객체와 영역⭐⭐⭐⭐⭐

네가지 영역

네자기 영역으로 구성된다.

  • page영역 : pageContext를 얘기하는 것이다. page를 나타내는 게 아니다.
  • request : request 기본객체
  • session : session 기본객체
  • application :application 기본객체

웹은 상태를 저장할 수 있게 만들어 지지 않았다 -> 사용자가 여러페이지를 거친다면,
이전 페이지에서 뭘 했는 지를 알 수 없다.
그게 '상태'라는 것이다.
html은 변수를 만들 수 없어서 값 저장이 안된다.
휘발성 데이터를 영속성 데이터를 저장하는 파일에 저장할 필요가 없다.

4개의 객체는 안에 값을 넣을 수 있는 기능이 있는데 이걸 attribute라고 한다.
일을 진행할 때 이게 없으면 일을 할 수 없다.
9개의 객체중에 '속성'을 제공하는 객체가 4개가 있다.
속성 : 값을 담아놓는 장소. map같은 형식이다.
4개가 다 속성을 지원하는데, 저 4개가 각각 언제까지 유지가 되느냐의 문제.

page, request, session, application

데이터가 유지되는 범위를 4가지로 나눴다.
범위 무조건 이해해야한다. 여기에다가 값을 잡아넣을 것이기 때문에!!!!

page
: pageContext객체

  • 해당하는 페이지 안(한페이지 안)에서만 쓸 수 있다. 페이지 내부에서만 쓸 수 있다.
    jsp당 한개. 많이 안쓰임.
    하나의 jsp페이지를 범위로 갖는데, jsp가 바뀌면 PageContext가 바뀌고 그 안의 값이 사라진다.

request
: request 기본객체 - HttpServletRequest API사용

  • 요청이 들어와서 응답이 나갈 때까지 유지된다.
    요청이 들어와서 여러 jsp를 거치게 되는 상황이 있다.
    그때 jsp가 4개라면, 4개의 jsp가 같은 리퀘스트를 공유한다.
    기능 하나라고 생각하기.
    하나의 기능이 시작해서 끝날 때까지 약간 메서드에 들어오는 파라미터 같은 거.
    메서드 하나가 기능하나니까.
    개수는 지역변수보다 파라미터가 훨씬 많다. 기능이 수백인데 그때마다 request가 사용된다.
    많이 사용됨.

session
: session 기본객체 - HttpSession API 사용

  • 클라이언트 당 하나씩 할당된다.
    클라이언트= 브라우저라서, 브라우저 당 하나씩 할당.
    브라우저를 접속했을 때부터 끌 때까지 유지가 된다.
    사용자 별 정보에 사용된다.
    대표적인게 로그인 같은 거. 로그인 한번 하면 네이버 아무때나 가도 네이버 로그인 되어 있다. 사용자 한명의 정보라서.
    크롬, 네이버웨일, 엣지 3개의 브라우저로 들어가면 3명의 클라이언트로 인식.
    많이 사용됨.

application
: application기본객체 - SerlvetContext API 사용

  • 전체에서 1개만 있기 때문에, 모두 공유한다. 서버 시작부터 서버 종료까지.
    특정한 사용자의 정보는 넣을 수 없다.
    공유하는 곳에는 모든 사용자가, 모든 jsp가 같이 사용하는 정보를 넣어야 한다.
    예를 들면 오늘의 방문자 수, 설정정보 등.

jsp 기본 객체의 속성 사용하기

  • setAttribute(String name, Object value) : 이름이 name인 속성의 값을 value로 지정한다. Object는 우리가 원하는 뭐든지 다 담을 수 있게 만든다.
  • getAttribute(String name) : 이름이 name인 속성의 값을 구한다. 지정한 이름의 속서잉 존재하지 않으면 null을 리턴한다. 리턴타입- Object
  • removeAttribute(String name) : 이름이 name인 속성을 삭제한다.
  • getAttributeNames() : 속성의 이름 목록을 구한다.(pageContext 기본 객체는 이 메서드를 제공하지 않는다.) 리턴타입- Enumeration<String>
  • 우리가 만들어 내는 값이라서 set도 있고, 지우는 것도 있음.

mvc : 세가지 파트가 있는데 하는 역할이 다른거..
이 3가지가 하나로 묶여야지 일이 끝난다. -> 서로 주고 받는 값같은 것들이 존재할 때 request의 속성을 이용한다. 계속 유지되어야 되는 값들. 이 값들을 request에 담는다.

profile
Hello :)

0개의 댓글