WEB/JSP / / 2021. 12. 29. 01:40

[JSP] 자바빈(JavaBean)이란?

자바빈(JavaBean)

JSP에서 객체를 가져오기 위한 기법으로 데이터 전달 오브젝트 파일 DTO(Data Transfer Object)라고도 한다.

 

자바로 작성된 컴포넌트들 즉, 클래스(Class)를 일반적으로 말한다.
JSP 프로그래밍에는 DTO(Data Transfer Object)나 DAO(Data Access Object)클래스의 객체를 JSP페이지에서 사용하기 위해 사용한다.

 

자바빈 사용 목적

JSP 페이지가 화면 표현 부분과 로직들이 같이 존재하여 복잡한 구성을 가급적 피하고, JSP 페이지의 로직 부분을 분리해서 코드를 재사용함으로써 프로그램의 효율을 높이기 위해서 사용한다.

 

자바빈 사용 방법

<jsp:useBean/> 태그

자바빈 객체를 생성하기 위한 태그. 태그 속성은 아래와 같다.

<jsp:useBean id="빈 이름" class="자바빈 클래스 명" scope="사용범위"/>
  • id : 생성할 객체(인스턴스)의 이름을 정의 (생략불가)
  • class : 객체를 생성할 클래스명을 정의 (패키지명.클래스명으로 설정)
  • scope : 자바빈 객체가 공유되는 범위를 지정 (scope 생략시 기본값은 page)

<jsp:setProperty/> 태그

자바빈 클래스의 속성 값을 설정하기 위한 태그. 속성은 아래와 같다.

<jsp:setProperty name="빈 이름" property="속성명" value="설정할 값"/>
<jsp:setProperty name="빈 이름" property="속성명" param="파라미터명"/>
  • name : useBean을 이용해 생성한 객체 이름을 명시
  • property : 값을 저장할 프로퍼티의 이름을 명시
  • value : 저장할 값을 정의

<jsp:getProperty/>태그

자바빈 클래스의 속성값을 가져오기 위한 태그. 속성은 아래와 같다.

<jsp:getProperty name="빈 이름" property="속성명"/>
  • name : 값을 가져올 빈의 id
  • property : 가져올 속성의 이름

자비빈 설계 규약

설계규약을 따라야 한다. 설계규약과 맞지 않는 경우 자바빈의 특성을 갖지 않는 클래스가 되어버린다.

  • 멤버변수마다 별도의 getter, setter 메서드가 존재해야 한다.
  • get 메소드는 매개변수가 존재하지 않아야한다.
  • set 메소드는 반드시 하나 이상의 매개변수가 존재해야 한다.
  • 생성자는 매개변수가 존재하지 않아야 한다.
  • 멤버변수의 접근제어자는 private이고 각 getter, setter 메서드의 접근제어자는 public , 클래스의 접근제어자는 public 으로 정의한다.
    import java.io.Serializable;
    import java.util.Date;
    
    // Java Beans
    public class MemberInfo implements Serializable{
    	
    	private String id;
    	private String passwd;
    	private String name;
    	private Date registerDate;
    	private String email;
    	
    	public String getId() {
    		return id;
    	}
    	public void setId(String id) {
    		this.id = id;
    	}
    	public String getPasswd() {
    		return passwd;
    	}
    	public void setPasswd(String passwd) {
    		this.passwd = passwd;
    	}
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	public Date getRegisterDate() {
    		return registerDate;
    	}
    	public void setRegisterDate(Date registerDate) {
    		this.registerDate = registerDate;
    	}
    	public String getEmail() {
    		return email;
    	}
    	public void setEmail(String email) {
    		this.email = email;
    	}	
    }​
반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유