본문 바로가기
개발/Front-End

JSP 자바빈(JavaBean)이란 무엇일까?

by Devsong26 2017. 11. 9.

- 자바빈(JavaBean)이란?

자바로 작성된 컴포넌트들 즉, 클래스(Class)를 일반적으로 말합니다. 

JSP 프로그래밍에는 DTO(Data Transfer Object)나 DAO(Data Access Object)클래스의 객체를 JSP페이지에서 사용하기 위해 사용합니다. 

자바빈을 이용하여 프로그래밍을 하면 클래스의 객체 선언과 비즈니스 로직 등을 <% %> 스크립틀릿 영역에서 작성하지 않아서 가독성이 좋습니다. 

 

 

- 자바빈을 사용한 코드와 사용하지 않은 코드를 확인해보겠습니다. 

왼쪽은 자바빈을 사용하지 않은 코드이고, 오른쪽이 자바빈을 사용한 코드입니다.

자바빈을 사용할 경우 <% %>안에 내용이 간결해지는 것을 확인할 수 있습니다. 

(나중에 포스팅할 EL, JSTL을 보시면 스크립틀릿자체를 안씁니다.)

 

 

- 자바빈 사용하기

자바빈을 사용하기 위한 JSP 액션태그는 총 3가지가 있습니다.

(1) <jsp:useBean id="..." class="..." scope="..."/>

(2) <jsp:setProperty name="..." property="..."  value="..."/>

(3) <jsp:getProperty name="..." property="..."/>

 

(1) <jsp:useBean id="..." class="..." scope="..."/>

자바 객체를 생성하는 액션태그입니다. 

주의해야할 점은 useBean 액션 태그로 생성하는 객체의 클래스는 반드시 기본 생성자만을 가져야 합니다.

# id는 객체명을 지정하는 속성입니다.# class는 생성할 객체의 클래스 경로명을 입력하시면 됩니다. 생략이 불가능합니다.프로젝트에서 작성한 자바클래스를 사용할 경우 src안에 있는 패키지명.클래스 경로로 적어주시면 됩니다. # scope는 객체가 생명주기를 나타냅니다. 생략이 가능하며 default값은 page입니다.(생명주기는 나중에 포스팅하겠습니다.) 
(2) <jsp:setProperty name="..." property="..." value="..."/>생성된 객체의 setter메소드를 호출할 때 사용하는 액션태그입니다. # name은 useBean 액션태그로 생성된 객체의 이름을 입력합니다. 생략이 불가능합니다.# property는 프로퍼티명을 지정합니다. 생략이 불가능합니다.예를 들어 name을 입력할 경우, private void setName(String name){} 메소드가 호출되어 name값이 셋팅됩니다.request객체를 통해 전달되는 모든 데이터를 받아야 할 경우에는 property="*"를 입력하시면 됩니다.# value는 property에 전달할 값을 직접 넣어줄 경우 사용되는 속성입니다. 생략이 가능합니다. 이 때 useBean으로 생성된 객체, 문자열등을 직접적으로 입력할 수 있습니다.
(3) <jsp:getProperty name="..." property="..."/>생성된 객체의 getter메소드를 호출할 때 사용하는 액션태그입니다.# name은 useBean 액션태그로 생성된 객체의 이름을 입력합니다. 생략이 불가능합니다.# property는 프로퍼티명을 입력합니다. 생략이 불가능합니다.입력된 프로퍼티의 상응하는 getter메소드가 호출됩니다.사용할 때는 <%= %> 표현식 안에 입력하거나 String temp = <jsp:getProperty> 형식으로 사용합니다. 

 

- 생성된 객체의 setter, getter 메소드가 없을 경우 자바 코드처럼 객체명.메소드로 접근가능합니다.

 

 

이상으로 자바빈(JavaBean) 포스팅을 마칩니다.