51일차 - [JSP] attribute
안녕하세요. 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)
-> main에서 setAttribute로 속성의 이름과 값을 지정하고, sub에서 getAttribute로 속성의 값을 구한다.
ex2)
배열 타입
이름은 String타입이고, 값은 모든 클래스 타입이 올 수 있다. 배열 타입을 먼저 알아보겠다.
ex1)
-> 향상된 for문을 돌려 getAttribute로 속성의 값을 나열할 수 있다.
ex2)
-> sub 파일을 이용해 여러 메인 페이지를 만들 수 있다.
ex3)
ex2와 같은 출력이 나오지만 배열 타입이 아닌 List 컬렉션을 이용하여 같은 출력을 만들어 주었다.
Object 타입
자바는 기본 데이터 타입과 wrapper 타입 간의 변환을 자동으로 처리해주는 오토 박싱/오토 언박싱 기능을 제공하므로,
setAttribute() 메서드에 기본 데이터 타입의 값을 전달하거나
getAttribute()에서 wrapper 타입으로 읽어온 값을 기본 데이터 타입에 할당할 수 있다.
-> 아래의 모든 예시들에 import 되어있는 MyBook 클래스 파일이다.
ex1)
-> MyBook을 만들어서 setAttribute로 넣어주면 사용할 수 있다.
ex2)
ex3)
감사합니다.
*m1 맥북을 사용 중입니다.*