원문? :http://blog.naver.com/yongirani?Redirect=Log&logNo=10028678712
▩ 빈즈(강낭콩)의 이해
- jsp페이지상에 나열되는 자바 처리로직은 디자인 코드와 함께 매우 복잡한 코드를 구성합니다.
이로인해 디자인 변경시 자바코드가 영향을 받아 오류가 자주 발생되며, 코드 수정시 코드를 알아볼 수 없어
유지보수가 매우 힘이 듭니다.
이러한 반복되는 자바 코드들을 JAVA파일안에 저장하여 사용하는 형태를 빈즈라고 합니다.
- 확장자는 *.java 입니다. 컴파일하여 .class형태로 배포합니다.
- 메모리에 생성된 빈즈(DTO)는 다른 자바 클래스(DAO(Data Access Object), Business Logic)에 의해서 사용됩니다.
- 빈즈는 dll과 같은 원리를 가지고 있습니다.
- 빈즈는 sun에서 제시한 작성 규칙이 존재합니다.
▩ DTO(Data Transfer Object: 데이터 전송 객체, Value Object) 빈즈
- 폼에서 입력된 데이터들은 하나의 DTO 객체로 변환 될 수 있습니다.
- 하나의 데이터베이스 레코드를 저장하며 레코드와 같은 구조를 가지고 있습니다.
- 하나의 레코드는 빈즈 클래스 객체 하나로 매핑됩니다.
- 데이터베이스 컬럼은 멤버 변수로 매핑됩니다.
1. 필드선언(멤버 변수, 인스턴스 변수)
. 하나의 컬럼값을 저장
. 보안성 및 캡슐화, 데이터 은닉의 목적으로 private으로 선언합니다.
. private String name;
2. setter
- 필드에 값을 저장하는 기능을 합니다.
- HTML 폼의 INPUT태그의 값을 빈에 저장하는 역활을 합니다.
- 메소드명은 set + input태그의 이름중 첫자를 반드시 대문자로 사용하는 규칙을 적용해 태그명을 지정합니다.
따라서 HTML에서 input 태그의 이름은 영문 소문자를 사용하며 태그의 이름에 신중을 기해야 합니다.
예 1)
<input type="text" name="id" size="15" value='user1'>
<input type="text" name="addr" size="15" value='user1'>
public void setId(String id) {
this.id = id;
}
public void setAddr(String addr) {
this.addr = addr;
}
3. getter
- 인스턴스 변수의 값을 가져오는 기능을 합니다.
public String getName(){
return name;
}
▩ DAO(Data Access Object) 빈즈
- DTO 객체를 만들어 편집 및 조작을 합니다.
- DTO를 데이터베이스 서버에 저장하기도 하고 데이터베이스 서버로 부터 레코드를 SELECT해
DTO 객체로 변경해 가져오기도 합니다.
- Insert, delete, update, select등 데이터 처리를 주 목적으로 합니다.
▩ Manager Class(관리 클래스)
- DTO와 DAO사이에서 연결 및 처리 역활을 합니다.
DreamWeaver Eclipse DbEdit
(*.html, *.jsp) (*.java) (*.sql)
----------- ------------------------ -------------
JSP <-----> Manager Class <-----> DAO <-----> Oracle
↑ ↑
│ │
└--------------------------------┘
DTO
계층간 데이터 전송 객체
▩ 빈즈의 사용 Scope(범위)
- Page :
. 기본값, page를 벗어나면 자동으로 소멸합니다.(중요)
- Request : forward, include에서 사용가능, 약간 사용됨
- Session :
. 사용자가 로그인해 있는 동안 계속적으로 살아 있음
. 메모리 소모가 심함으로 필요한 곳에 적절히 사용해야 함
. 쇼핑카드 구현등 객체를 계속적으로 유지해야하는 경우에 사용됩니다.
. 사용자가 브러우저를 닫으면 관련 JSP Session 빈은 소멸함(중요)
- Application
. 웹 사이트 전체, 모든 사용자에게 영향을 미치는 빈
. 메모리 소모가 심함으로 많이 사용하지 않음, 서버가 운영되는 동안 객체가 살아 있음
. 모든 사용자가 변수와 객체를 공유하게 됨
. 서버를 재시작해야 변수들이 재설정됨
'JAVA/JSP' 카테고리의 다른 글
[Java] Singleton 방식에서 객체가 null값이 될때 (0) | 2008.04.02 |
---|---|
HashMap 예제 (0) | 2008.01.06 |
한글파라미터 값 넘길때 한글처리 (0) | 2008.01.01 |