6개월 대장정/JSP 개념

51일차 - [JSP] attribute

pitang 2021. 11. 4. 02:22
반응형

안녕하세요. pitang입니다.

JSP 기본 객체의 속성(Attribute) 사용하는 방법을 알아보겠습니다.

 

attribute

웹 애플리케이션은 네 가지 영역(scope)으로 구성된다. scope는 조금 나중에 알아볼 것이다.

이 이야기를 한 이유는 네 가지 영역에는 네 개의 기본 객체가 있고 그 객체들은 속성을 갖는다.

각 기본 객체가 존재하는 동안 기본 객체의 속성을 사용할 수 있다.

속성은 JSP 페이지 사이에서 정보를 주고받거나 공유하기 위한 목적으로 사용된다.

 

속성은 <속성이름, 값>의 형태를 갖는다. 네 개의 기본 객체는 서로 다른 이름을 갖는 속성을 여러 개 포함할 수 있다.

setAttribute(String name, Object value) void 이름이 name인 속성의 값을 value로 지정.
getAttribute(String name) Object 이름이 name인 속성의 값을 구함.
removeAttribute(String name) void 이름이 name인 속성을 삭제.
getAttributeNames() Enumeration<String> 속성의 이름 목록을 구함.
(pageContext 기본 객체는 이 메서드를 제공하지 않음.)

속성의 이름은 문자열을 나타내는 String 타입이지만, 값은 모든 클래스 타입이 올 수 있다.

 

setAttribute() 메서드의 value 파라미터 타입이 Object이고 getAttribute() 메서드의 리턴 타입이 Object이다.

이것은 모든 클래스 타입을 속성의 값으로 사용할 수 있다는 것을 뜻한다.

 

String 타입

ex1)

01main.jsp
01sub.jsp
console

-> main에서 setAttribute로 속성의 이름과 값을 지정하고, sub에서 getAttribute로 속성의 값을 구한다.

 

ex2)

02main.jsp
02sub.jsp
console


배열 타입

이름은 String타입이고, 값은 모든 클래스 타입이 올 수 있다. 배열 타입을 먼저 알아보겠다.

ex1)

03main.jsp
03sub.jsp
console

-> 향상된 for문을 돌려 getAttribute로 속성의 값을 나열할 수 있다.

 

ex2)

04sub.jsp
04main1.jsp
main1 console
04main2.jsp
main2 console

-> sub 파일을 이용해 여러 메인 페이지를 만들 수 있다.

 

ex3)

ex2와 같은 출력이 나오지만 배열 타입이 아닌 List 컬렉션을 이용하여 같은 출력을 만들어 주었다.

05sub.jsp
05main1.jsp
main1 console
05main2.jsp
main2 console


Object 타입

자바는 기본 데이터 타입과 wrapper 타입 간의 변환을 자동으로 처리해주는 오토 박싱/오토 언박싱 기능을 제공하므로,

setAttribute() 메서드에 기본 데이터 타입의 값을 전달하거나

getAttribute()에서 wrapper 타입으로 읽어온 값을 기본 데이터 타입에 할당할 수 있다.

 

-> 아래의 모든 예시들에 import 되어있는 MyBook 클래스 파일이다.

MyBook

 

ex1)

06main.jsp
06sub.jsp
console

-> MyBook을 만들어서 setAttribute로 넣어주면 사용할 수 있다.

 

ex2)

07main.jsp
07sub.jsp
console

 

ex3)

08main.jsp
08sub.jsp
console

 

 

 

 

감사합니다.

 

*m1 맥북을 사용 중입니다.*

728x90
반응형