JSP 기본객체와 영역

2021. 10. 8. 14:30jsp

 

우리는 지금까지 request,response, out 등의 기본객체를 사용해봤습니다.

이 외에도 몇가지 기본객체를 사용해보고

이 기본객체가 jsp실행 도중 어디서부터 어디까지 영향을 미치는지에 대한

영역에 대한 내용을 다루도록 하겠습니다.

 

 

 

PageContext

pageContext 객체는 JSP페이지와 일대일 로 연결된 객체로  다음의 기능을 제공한다.

  • 기본 객체 구하기
  • 속성처리하기
  • 페이지의 흐름 제어(forward,include) 

페이지의 흐름제어는 나중에 pageModule부분에서 다룬다.

 

Application

웹 애플리케이션에 1개씩 있는 기본 객체이다.  

localhost:8080 까지는 서버를 가리킨다.  

localhost:8080/study 가 하나의 웹 애플리케이션이다. 

위 그림에서 서버는 2개의  웹 애플리케이션이 있고

이 서버를 실행하면 2개의 application 객체가 생성된다.

즉 우리가 사용하는 study프로젝트에서는 어떤 jsp에서든 application 객체를 공유한다.

 

(보통 서버관련 설정파일은 web.xml이라고 하는데 이는 정확히 서버에

등록된 웹 애플리케이션 설정파일이다. 

어쨋든 web.xml을 서버관련 설정파일이라고하든, 웹 애플리케이션이라고 하든

보통 우리는 하나의 프로젝트를 가지고 개발하기 때문에 큰 혼란은 없다)

 

 

 

 

 

 

 

기본객체와 영역

pageContext : 하나의 JSP페이지를 처리할 때 사용되는 영역

request :  하나의HTTP요청을 처리할 때 사용되는 영역

session : 하나의 웹 브라우저와 관련된 영역

application 영역 : 하나의 웹 애플리케이션과 관련된 영역 

 

 

 

실제로 많이 사용되는 request,session만 살펴보자

 

위 그림에서 웹 애플리케이션에 브라우저가 요청을 한다고 생각해보자.

실제로 naver같은데에는 여러 사용자가 요청을 할 것이다.

웹 애플리케이션 입장에서  이 여러사용자들을 구별하기 위한 객체가 session객체이다.

이 session객체는 사용자(정확하겐 사용자의 브라우저)별로 1개씩 만들어진다.

request는 같은 사용자여도 jsp를 요청할 때마다 생성된다.

 

 

 

 

 

 

기본 객체에 속성 set, get

각 기본객체가 존재하는 동안(영역을 잘 보자) 기본객체의 속성을 사용할 수 있다.

속성은 JSP사이에서 데이터를 주고받기 위한 목적으로 사용된다.   

 

속성 처리 메소드

 메소드 리턴타입  설명 
 setAttribute(String name,
                 Object value)
 void  이름이 name인 속성의 값을 value로 지정합니다.
 getAttribute(String name)  Object  이름이 name인 속성의 값을 구합니다. 지정한 이름의 속성이 존재하지 않을 경우 null을 리턴합니다.
 removeAttribute(String name)  void 이름이 name인 속성을 삭제 합니다. 
 getAttributeNames()  java.util
 Enumeration
 속성의 이름 목록을 구합니다.(pageContext기본 객체는 이 메서드를 제공하지 않는다)

 

 

request도 속성에 데이터를 저장하고 가져올 수 있다.

나중에 jsp forward나 include등의 기능을 사용하면 같은 request 객체를 공유하는

서로다른 파일을 여러개 만들게 된다. 이 서로다른 파일들에서 데이터를 공유하기 위해서는

setAttributre,getAttribute를 이용해야한다.

(하나의 파일에서 setAttribute,getAttribute 할 수는 있지만, 별로 유용하지는 않을 것이다.)