Transcript Chap_10

10장 자바빈(JAVABEAN)
이장에서 배울 내용 : 화면에 표시를 담당하는 JSP페이지와 실제프
로그램을 처리하는 로직을 분리하는 것에 대해서 학습한다. 하나의
JSP페이지 안에 디자인부와 로직부가 혼재하게 되면 프로그램의 협
업과 유지보수가 어렵다.
자바빈은 로직을 처리하는 부분을 JSP페이지 내에서 따로 추출해서
별도의 자바파일로 작성을 하는 것이다. 따라서 이번 장에서 JSP의
로직부분을 담당하고 있는 자바빈이 무엇이고 어떻게 작성하고 사
용하는지를 학습하는 것이 목적이다.
김은옥([email protected])
목차
자바빈(JavaBean)의 개요
 자바빈(JavaBean) 만들기 : 자바빈 클래스작성
 자바빈과 useBean액션태그의 연동

자바빈(JAVABEAN)의 개요

자바빈을 사용하는 목적 : JSP 페이지에 화면
표시부분과 로직들이 함께 존재해서 복잡하게
구성되는 것을 가능한 피하고, JSP 페이지의
로직 부분을 분리해서 코드를 재사용함으로
프로그램의 효율을 높이는 것.
자바빈(JAVABEAN) 만들기 : 자바빈 클래스작성

자바빈(JavaBean) 클래스 작성
 자바의
클래스를 작성할 때의 기본적인 순서
1. package 패키지명; //없으면 생략가능
2. import 패키지명을 포함한 클래스의 풀네임; //없으면 생략가능
3. class 클래스명{
}
 자바의
클래스를 선언
접근제어자 [키워드] class 클래스명{}
자바빈(JAVABEAN) 만들기 : 자바빈 클래스작성
자바빈의 클래스선언:접근제어자를 public을
사용
 멤버변수 : 접근제어자는 private 사용

 자바빈에서는
멤버변수를 프로퍼티(property)라고
도 부름.

setter/getter메소드 : 프로퍼티의 값을 저장하
고 얻어내는 메소드, 접근 제어자는 public을
사용
자바빈(JAVABEAN) 만들기 : 자바빈 클래스작성

자바빈 클래스 예시
package bean.logon;
public class DbDataLogin{ //자바빈 클래스
//프로퍼티
private String id;
//setter메소드
public void setId(String id){
this.id=id.trim();
}
//getter메소드
public String getId(){
return id;
}
자바빈과 USEBEAN액션태그의 연동

JSP페이지에서는 자바빈을 사용하기 위해서
3가지의 액션태그를 제공.
객체를 생성: useBean액션태그
(<jsp:useBean>)
 자바빈 객체의 프로퍼티 값을 저장: setProperty액
션태그(<jsp:setProperty>)
 자바빈 객체에서 저장된 프로퍼티 값을 얻어내기:
getProperty액션태그 (<jsp:getProperty>)
 자바빈
자바빈과 USEBEAN액션태그의 연동

자바 빈 관련 액션태그
자바 빈 관련 액션태그
<jsp:useBean id="..." class="..." scope="..."/>
자바빈 객체를 생성
<jsp:setProperty name="..." property="..." value="..."/>
생성된 자바빈 객체에 프로퍼티 값을 저장.
<jsp:getProperty name="..." property="..." />
생성된 자바빈 객체에서 저장된 프로퍼티 값을 사용하기 위해 얻어냄.
자바빈과 USEBEAN액션태그의 연동
자바 빈 객체 생성 : useBean액션태그
(<jsp:useBean>)
 사용하는 방법

<jsp:useBean id= "빈 이름" class="자바빈 클래스 이름"
scope="범위" />
 id속성:
생성될 자바빈 객체(인스턴스)의 이름을 명시. 필수
속성으로 생략이 불가능.
 class속성: 객체가 생성될 자바빈 클래스명을 기술. 이때 패
키지명을 포함한 자바클래스의 풀네임을 기술. 필수 속성으
로 생략이 불가능.
 scope속성: 자바빈 객체의 유효범위로 자바빈 객체가 공유되
는 범위를 지정. scope속성 값으로는 page, request, session,
application을 가지며 scope속성 생략 시, 기본 값은 page.
자바빈과 USEBEAN액션태그의 연동

<jsp:useBean>액션태그에서 id속성 값에 지정
한 객체의 레퍼런스명이 이미 존재하는 경우,
기존에 생성된 객체를 그대로 사용.
자바빈과 USEBEAN액션태그의 연동

프로퍼티 값 설정 : setProperty액션태그
(<jsp:setProperty>)
<jsp:setProperty>액션태그는 자바빈 객체의 프로퍼티
값을 저장하기 위해 사용
<jsp:setProperty name= "빈 이름" property="프로퍼티 이
름" value="프로퍼티에 저장할 값 " />

 name속성:
자바빈 객체의 이름을 지정. 필수 속성으로 생략
이 불가능.
 property속성: 프로퍼티명을 지정. 필수 속성으로 생략이 불
가능.
 value속성: 프로퍼티에 저장할 값을 지정. 생략 가능.
자바빈과 USEBEAN액션태그의 연동

한 번에 각각의 프로퍼티의 값을 지정
 <사용자
입력폼>
<tr>
<td bgcolor="" class="normalbold" width="200"> 사용자 ID</td>
<td width="400">
<input type="text" name="id" size="10" maxlength="10">
<input type="button" name="confirm_id" value="ID중복확인" OnClick="openConfirmid(this.form)">
</td>
</tr>
자바빈과 USEBEAN액션태그의 연동

한 번에 각각의 프로퍼티의 값을 지정
 <자바빈을
사용하는 JSP페이지>
<jsp:useBean id="inDb" scope="page" class="bean.logon.DbDataLogin">
<jsp:setProperty name="inDb" property="id"/>
</jsp:useBean>
 <자바빈
클래스>
public void setId(String id) {
this.id = id;
}
자바빈과 USEBEAN액션태그의 연동

프로퍼티 값 얻기 : getProperty액션태그
(<jsp:getProperty>)
 <jsp:getProperty>액션태그는
자바빈 객체에서 저
장된 프로퍼티 값을 얻어내서 사용
<jsp:getProperty name= "빈 이름" property="프로퍼
티 이름" />
 name속성:
자바빈 객체의 이름을 명시. 필수 속성으로
생략이 불가능.
 property속성: 프로퍼티 명을 기술. 필수 속성으로 생략
이 불가능