is Data.

JSP 기본객체의 속성(Attribute)

JSP 기본 객체 pageContext, request, session, application은 속성(Attribute)를 갖고 있다.

속성은 각각의 기본객체가 존재하는 동안에 사용될 수 있으며, JSP페이지 사이에서 정보를 주고 받거나 공유하기 위한

목적으로 사용된다.

 

속성은 각 기본객체별로 이름이 중복되지 않게 1개 이상 생성할 수 있으며, 속성은 메서드를 통해 추가, 변경, 삭제가

가능하다.

<%
  application.setAttribute(String name, Object value); // application 기본객체에 속성지정
  application.removeAttribute(String name); // 이름이 name인 application속성 제거
  Enumeration enum =
          application.geAttributeNames(); // Enumeration 타입으로 속성 이름 리스트 반환
  (알맞은형변환)application.getAttribute(String name); // name 속성의 값을 반환(없으면 null)
%>

위처럼 속성을 지정하고 제거하고, 전체 속성 이름 리스트 구하기등이 가능하다. 또 수정은 같은 이름의 속성을 다시

지정할 경우 해당 이름의 속성의 값이 변경된다.

주의할 점은 속성의 값 타입이 Object라는 것과 pageContext기본객체는 getAttributeNames() 메서드를 사용할 수

없다는 것이다.

 

속성의 값이 Object 타입이기 때문에 속성의 값에는 어떤 타입의 데이터든지 가리지 않고 저장이 가능하다.

하지만 사용할때는 자바의 다형성에 의거 downcasting 즉, 알맞은 형으로 변환하여 사용해야 한다.

String name = (String)session.getAttribute("username");
Date date = (Date)request.getAttribute("myDate");
위의 예처럼 알맞은 자료형으로 캐스팅(형변환) 하여 사용해야 하며, 기본 데이터타입(프리미티브)의 경우
래퍼클래스를 사용해서 지정할 수 있는데 오토박싱/언박싱 기능으로 프리미티브 타입도 사용가능하다.
단, 래퍼클래스를 사용한 경우값을 읽어올 때 래퍼클래스의 읽기 메서드를 사용해야 한다.