[Servlet] 데이터 저장 영역

2020. 6. 10. 16:38 Java 관련/JSP,Servlet

데이터 저장 영역


서블릿에서는 데이터를 저장하는 영역으로 페이지 객체, 요청 객체, 세션 객체, ServletContext 객체 네 가지를 사용할 수 있다.

1) 페이지 객체는 현재 페이지 내에서만 사용할 변수를 저장하는 영역.

2) 요청 객체는 요청 객체가 유지되는 영역에서 사용할 변수를 저장하는 영역.

3) 세션 객체는 웹 브라우저가 종료되기 전가지나 세션이 끊어지기 전까지 사용할 변수를 저장하는 영역.

클라이언트마다 독립적으로 데이터를 저장하고 관리할 수 있는 최고 범위의 데이터 저장 영역이다. 여기에 저장되는 데이터는 클라이언트가 웹 브라우저를 종료하기 전까지나 세션이 끊어지기 전까지는 사라지지 않는다.

4) ServletContext 객체는 서버가 종료되기 전까지 사용할 변수를 저장하는 영역.


이들 각 영역에 저장된 데이터를 사용해서 여러 페이지에 걸쳐 필요한 범위까지 변수를 선언할 수 있다.


1. 요청 객체

(1) 객체: ServletRequest 또는 HttpServletRequest 객체

(2) 추가: request.setAtrtribute("키","값");

(3) 삭제: request.removeAttribute("키","값");

(4) 획득: Object obj = request.getAttribute("키");


2. 세션객체

(1) 객체: HttpSession 객체

(2) 생성: session = request.getSession() 또는 request.getSession(boolean); 

cf.) getSession(true): 기존에 세션 객체가 없으면 새오룬 HttpSession 객체를 생성하라는 의미이다.

(3) 추가: session.setAtrtribute("키","값");

(4) 삭제: session.removeAttribute("키","값");

(5) 획득: Object obj = session.getAttribute("키");

세션 객체를 사용하려면 각 페이지마다 객체를 사용해야 한다. 세션 객체에 저장된 데이터는 클라이언트별로 데이터를 저장하고 관리한다.

때문에 요청 객체로부터 세션 객체를 생성한다. 데이터늬 추가나 삭제, 획득은 요청 객체에서와 방법이 같다.


3. Servletcontext 객체

(1) 객체: ServletContext 객체

(2) 생성: application = this.getServletContext();

(3) 추가: application.setAttribute("키","값");

(4) 삭제:application.removeAttribute("키","값");

(5) 획득: Object obj = application.getAttribute("키");

특이한 점이자 중요한 점은 현재의 서블릿에서 Servletcontext 객체를 획득한다는 것이다. 이것은 서버 자체의 저장 영역을 사용한다는 의미이다.

서블릿은 서버에서 실행이 되기 때문에 this는 서블릿 자체를 이야기하고, 서블릿과 연결되어 있는 서버는 모든 클라이언트에 공통적인 사항이다. 정리하면 서버의 데이터 저장 영역인 ServletContext 객체를 획득하면 

여기에 저장된 데이터는 클라이언트가 모두 공유할 수 있다는 의미이다.



출처: https://devbox.tistory.com/entry/Servlet-데이터-저장-영역?category=574550 [장인개발자를 꿈꾸는 :: 기록하는 공간]

'Java 관련 > JSP,Servlet' 카테고리의 다른 글

[JSP] 커넥션 풀  (0) 2020.06.10
[Servlet] 서블릿 이벤트  (0) 2020.06.10
[Servlet] 서블릿 필터  (0) 2020.06.10
[Servlet] 서블릿 기초  (0) 2020.06.10
[Servlet] 초기화 파라미터  (0) 2020.06.10
[Servlet] web.xml 주요 태그  (0) 2020.06.10
[Servlet] 웹 프로그램 기본파일(tomcat환경)  (0) 2020.06.10
[JSP] 적절한 include 사용하기  (0) 2020.02.13