자바빈 JavaBean 또는 DTO, Data Transfer Object

자바로 작성된 컴포넌트 클래스이다. DTO 클래스라고도 부른다.

폼데이터 처리에 용이하다. 폼에서 넘어오는 많은 데이터를 자바빈에 저장하고, 전달할 수 있다.

또, 여러 JSP 파일에서 사용 가능하고, 컴포넌트 기반 구현이다.

JSP, DTO, DAO 클래스가 분리되어 각 컴포넌트 별로 기능을 수행한다.

 

 

 

 

 

자바빈 작성법

 

 

 

경로는 프로젝트 폴더 > Java Resources > src 이다.

 

 

 

 

 

 

대소문자에 유의하며 패키지와 클래스를 생성한다.

메인 메소드는 생성하지 않는다. 자바 가상머신으로 실행하는것이 아니기 때문이다.

 

 

여기서는 simpleBean으로 되어 있는데 SimpleBean이다..

 

 

 

 

package javaBean;

public class SimpleBean {
	private String msg;	// 프로퍼티

	public String getMsg() {
		return msg;
    }
    	public void setMsg (String msg) {
   	 	this.msg = msg ;
  	  }
}

 

 

자바에서는 필드라고 부르는 private String msg; 를 자바빈 용어로는 프로퍼티라고 부른다.

 

접근 제어자는 일반적으로 private으로  설정한다.

그렇기 때문에 저장할 때에는 setXxx 메소드, 저장된 값을 불러올때는 getXxx 메소드를 사용한다.

이 때 Xxx는 프로퍼티 명으로 작성하고, 첫 글자는 대문자로 작성한다.

get-set 메소드의 접근 제어자는 public으로 설정한다.

 

 

 

 

실행할 페이지의 코드이다.

메시지 박스의 name 값은 "msg" 이고, 여기서 입력받은 값을 simpleBean.jsp로 전달할 예정이다.

 

 

 

 

 

 

 

 

가장 먼저 작성해야 할 태그는 useBean 이다.

패키지와 클래스명, 즉 경로를 가장 먼저 설정한다.

그리고 "sb"라는 이름의 객체를 생성한다.

 

<jsp:useBean id="sb" class="javaBean.SimpleBean" />

( id : 생성될 자바빈 객체의 이름을 명시 

class : 객체가 생성될 자바빈 클래스명 (패키지명을 포함, 대소문자를 구분하여 클래스의 풀네임 기술. 확장자는x

scope : 자바빈 객체의 유효 범위로 공유되는 범위를 지정한다.

             속성값으로는 page, request, session, application을 가지며, 생략시 기본값으로 page로 지정된다.)

 

 

 

이 코드는 simpleBean sb = new simpleBean(); 과 같다.

자바빈은 java Resources-src 폴더에 따로 생성하므로 

객체를 생성한다면, import도 해야 한다.

 

<% page import = "javaBean.SimpleBean(); %>
<% simpleBean sb = new simpleBean(); %>

					=
                    
<jsp:useBean id="sb" class="javaBean.SimpleBean" />

 

 

 

하지만 private 접근 제어자 때문에 값을 불러올 수가 없다.

그래서 setMsg(); 를 통해 값을 불러온다.

 

이 setMsg(); 의 역할을 setProperty 태그가 한다.

 

<jsp:setProperty name="sb" property="msg" />

 

( name : 자바빈 객체의 이름을 명시

property : 프로퍼티명을 명시

value : 폼에서 넘어오지 않는 값은 value로 별도 지정 )

 

 

 

 

그리고 출력은 getProperty로 한다.

 

<jsp:getProperty name="sb" property="msg" />

 

 

 

 

 

한 눈에 보기 쉽게 설명하자면 다음과 같다.

 

 

 

 

이렇게 getProperty 방식을 쓴다면 폼하나당 getProperty도 하나씩 늘려야 하기 때문에

만약 폼이 100개가 있다면 getProperty도 100개가 필요하다.

당연히 get-set 메소드도 그만큼이 필요한데,

이걸 한꺼번에 가져올 수 있는 방법이 있다.

 

 

property의 이름을 일일히 쓰지 않고 *로 처리하는 것이다.

같은 SimpleBean.java 내에 생성된 프로퍼티여야 한다.

 


<jsp:setProperty name="sb" property="msg" />

<jsp:setProperty name="sb" property="*" />

 

 

 

 

 

자바빈 관련 액션 태그

 

<jsp:useBean id=" " class=" " scope=" " /> 자바빈 객체 생성
<jsp:setProperty name=" " property=" " value=" " /> 생성된 자바빈 객체에 프로퍼티 값을 저장
<jsp:getProperty name=" " property=" " /> 생성된 자바빈 객체에 저장된 프로퍼티 값을 불러옴

 

'JSP' 카테고리의 다른 글

JSP와 데이터베이스 연동  (0) 2022.09.01
액션 태그 - forward, include  (0) 2022.08.29
JSP의 에러 처리  (0) 2022.08.29
간단한 '로그인 - 상품 목록 - 장바구니 - 계산 세션' 생성  (0) 2022.08.29
세션 (Session)  (0) 2022.08.26

+ Recent posts