티스토리 뷰
자바빈(JAVA BEANS)
자바로 작성되어진 컴포넌트들을 일반적으로 일컫는 말이다.
자바빈 사용목적
1.프로젝트의 능률적인 진행을 위해서는 가능한 독립적으로 작업을 할 수 있어야만 하기 때문에
디자이너가 작업하는 화면 표출(view)부분과 프로그래머가 작업하는 로직(model)부분을 분리시켜야 한다.
2.jsp페이지에 화면 표출부분과 로직들이 혼재한 형태의 코드는 재사용이 어렵다.
이렇게 jsp페이지가 화면 표출 부분과 로직들이 혼재함으로 인한 복잡한 구성을 가능한 피하고 jsp페이지의
로직 부분을 분리해서 코드를 재 사용함으로 프로그램의 효율을 높이는 것이 자바빈을 사용하는 목적이다.
JSP Based JavaBeans의 개발 규격
*에 해당하는 개발규격은 반드시 지켜 주어야 한다.
- *디폴트 생성자가 있어야 한다.
- 멤버 변수는 private 형을 지정하여 선언한다.(프로퍼티)
외부에서 직접 접근 할 수 없도록 접근 한정자를 private을 준다.
(패키지화를 해주기 때문에 public으로 만 주지 않으면 다른 패키지에서 사용할 수 없다.)
- 프로퍼티의 값을 설정하는 메서드는 public void setXXX(…) 로 정의
- 프로퍼티의 값을 추출하는 메서드는 public … getXXX() 로 정의
용도에 따라 get or set 메서드를 하나씩만 정의해 주어도 무관하다.
외부에서 접근할 수 있도록 public으로 선언해 준다.
- *패키지화를 해야 한다.(디폴트 패키지는 허용하지 않음)
패키지화가 되어있지 않으면 jsp에서 인식할 수 없다.
- 필요하다면 객체 직렬화가 가능하도록 구현한다.
객체직렬화 : 객체를 bytestream으로 변환해서 저장해두었다가 필요 시 다시 읽어 들여서 그대로
사용하는 것을 객체직렬화라 한다. Java.io.serializable를 상속받은 객체만 사용 가능하다.
자바빈의 클래스 선언은 접근제한자로 public을 사용하고, 멤버변수는 접근 제한자로 private을 사용해서 작성한다.
자바빈에서는 멤버변수를 프로퍼티(property)라고 부른다. 프로퍼티는 값을 저장하기 위한 필드이다.
이 데이터 저장소의 역할을 하는 프로퍼티에 값을 저장할 때는 setXxx()메서드를 사용하고 저장된 값을 사용할 때는
getXxx()메서드를 사용한다. 이때 Xxx는 프로퍼티명으로, 첫글자를 대문자로 작성한다.
하나의 프로퍼티당 하나의 setXxx()메서드와 getXxx()메서드가 존재한다.
간단한 자바빈 예제
package test;
public class SimpleBean{
private String msg;
public void setMsg(String msg){
this.msg = msg;
}
public String getMsg(){
return msg;
}
}
/-
클래스는 언제든지 함조해서 사용할 수 있도록 접근 제한자로 public을 사용했다.
String타입의 프로퍼티를 하나 선언했다. 프로퍼티는 멤버변수이기 때문에 어떠한 값을 담을 수 있는 역할을 한다.
void setMsg(String msg) => msg프로퍼티에 값을 저장하는 메서드
String getMsg() =>이 메서드를 호출하게 되면 그결과 값으로 String 즉 문자열 형태로 결과값을 반환해 준다는 의미
*-
자바빈을 컴파일 할때는 디렉토리를 포함해서 컴파일 해주어야 한다.
javac -d . SimpleBean.java
*Bean Tag
<jsp:useBean >
<jsp:useBean id="빈 이름" class="자바빈클래스 이름" scope="범위" />
jsp에서 사용하고자 하는 javaBeans의 객체를 생성하거나 이미 생성되어 있는 객체를 추출하여 사용 가능한 상태로 만드는 태그.
속성(id, scope, class, type)
Id : 사용 가능한 상태로 만들 javaBeans에 대해 이름을 부여해주는 기능 이름은 자바 식별자 규칙에 맞춰서 지정해 준다.
scope : javaBeans 객체의 유효 범위로 객체가 공유되는 유효범위를 지정한다.
Page | request | session | application 생략시 page로 지정된다.
Request =요청이 끝날 때 까지 공유
class : 객체가 생성될 javaBeans 클래스명을 기술하는 곳. 패키지명을 포함한 자바클래스의 풀 네임을 기술한다.
<jsp:setProperty >
자바빈 객체의 프로퍼티 값을 저장하기 위해 사용,빈에 대해 seter메서드를 호출하는 기능.
속성(name, property, value/param)
name : 자바빈 객체의 이름을 명시 하는 곳(생략이 불가능) 사용하고자 하는 Bean의 id값을 준다.
property : 프로퍼티명을 기술하는 곳(생략 불가능) 해당 seter메소드의 set을 뺀 이름 중 첫 글자를 소문자로 바꿔서 지정 해준다. 속성값을 *(아스테리스크)를 주면 모든 프로퍼티 값이 세팅된다.(폼에서 넘어오는 파라미터의 이름이 프로퍼티의 이름과 일치해야 한다.)
value/param : 둘중 하나만 사용 가능하다. 생략 가능하다. 생략 됐을 경우 쿼리스트링의 value가 설정된다. property명과 쿼리스트링의 name이 같을 때는 param속성을 생략 해준다.
value : 직접 설정할 값을 지정할 때 사용 문자열, 표현식 태그 사용 가능하다.
Param : 쿼리스트링에서 추출해서 사용할 때 사용한다. 쿼리 스트링의 name을
param속성에 명시해주고 이름이 같을 경우는 생략해 줄 수 있다.
<jsp:getProperty >
자바빈 객체에서 저장된 프로퍼티 값을 사용하기 위해 사용
속성 (name, property)
name : 자바빈 객체의 이름을 명시하는 부분.
property : 주어진 객체를 호출하여 주어진 위치에 표현해준다. get을 뺀 나머지 이름을 명시해준다.
'program' 카테고리의 다른 글
REST 방식으로 웹 서비스 구축하기 (0) | 2013.10.16 |
---|---|
Java JSON 파싱 (0) | 2013.10.03 |
[java]Vector ArrayList 차이점 (0) | 2013.10.03 |
bean, dto, vo, pojo 등 차이점 (0) | 2013.10.03 |
Java Code Convention (0) | 2013.10.02 |