정보의 덩어리로 데이터 저장소
재사용 가능한 컴포넌트를 만들기 위한 규약을 따르는 자바 클래스
프로그램에서 다뤄야 할 정보가 여러 개일 경우, 이를 각각 따로 저장하기보다는 자바 빈 객체로 묶어 하나의 객체로 구성해 사용하는 것이 더 효율적이다.
필요한 데이터들을 하나의 클래스로 정의하고, 그 클래스의 멤버 변수로 정보를 담으면 구조화된 데이터 관리가 가능해지고, 코드의 재사용성과 가독성도 높아진다.
ex) 사용자의 이름, 이메일, 나이 정보를 따로 저장하기보다는 User라는 JavaBean 클래스를 만들어 하나의 객체로 다루는 것이 바람직
자바 빈은 단순한 데이터 저장 객체일 뿐만 아니라, 자바의 캡슐화(데이터 은닉) 원칙을 적용한 구조
이렇게 "getter/setter를 통해 접근하는 형태의 속성"을 프로퍼티라고 한다.
setName은 외부에서 값을 얻와 필드에 값을 저장해야 하기에 매개 변수가 필드와 동일한 자료형태(String)으로 선언되어 있다. 매개 변수 값을 필드에 저장해야 하는데 매개 변수가 필드와 이름이 동일한 경우엥는 필드 앞에 this를 붙여서 매개 변수와 구분한다.
this는 객체 자신을 참조할 수 있는 레퍼런스이다.
public void setName(String name) {
this.name = name;
}
MemberBean memberBean = new MemberBean(); // 객체 생성
memberBean.setName("신짱구"); // 레퍼런스 변수로 메소드 참조
| 액션 태그의 종류 | 설명 |
|---|---|
<jsp:useBean> | 자바 빈을 생성한다. |
<jsp:getProperty> | 자바 빈에서 정보를 얻어온다. |
<jsp:setProperty> | 자바 빈에 정보를 저장한다. |
JSP와 자바 빈을 연결하기 위한 자바 빈 객체를 생성한다.
<jsp:useBean class="클래스 풀 네임"
id="빈이름"
[scope="범위"] />
<jsp:useBean class="com.saeyan.javabeans.MemberBean"
id="member"
scope="page" />
자바 빈 객체 필드에 저장된 데이터를 얻어온다.
<jsp:getProperty name = "빈이름" property="프로퍼티이름"/>
<jsp:useBean id="member" class="com.project.javabeans.MemberBean"/>
<jsp:getProperty name="member" property="name"/>
name 속성에는 <jsp:useBean> 태그에서 id와 반드시 일치해야 한다.
자바 빈 객체 필드에 새로운 값을 설정한다.
<jsp:setProperty name="자바빈이름" property="프로퍼티이름" value="값">
<jsp:setProperty name="member" property="name" value="신짱구" />
솔직히 개념이 다소 모호하게 느껴져서, 면접에서 질문을 받았을 때 한마디로 명확하게 답하기가 어려웠다. 그래서 최대한 쉽게 풀어 쓰면서 간결하게 정리해 보았다.