New World

[JSP 공부 #3] 자바 빈즈(JAVA Beans) 본문

Programming/Languages

[JSP 공부 #3] 자바 빈즈(JAVA Beans)

hyeovi 2020. 6. 30. 12:10
728x90
반응형

자바 빈즈

- 자바 클래스 중 하나로 비즈니스 로직 부분을 처리하는 자바 프로그램 단위
- 자바 프로그램에서 특정한 작업인 비즈니스 로직을 독립적으로 수행하는 하나의 프로그램 단위
- 큰 프로그램에서 독립적으로 수행되는 하나의 작은 프로그램 부품을 컴포넌트
- 자바 빈즈는 프로그램의 비즈니스 로직 부분과 프리젠테이션 부분을 분리

 

장점

- 자바 빈즈를 이용하면 JSP페이지가 복잡한 자바 코드로 구성되는 것을 피함
- JSP 페이지에는 HTML 코드와 쉽고 간단한 자바 코드만을 구성
- 한번 작성된 자바 빈즈를 여러 응용 프로그램에서 재사용이 가능

- 프로그램의 개발 기간도 단축


자바 빈즈 구성도

클라이언트 <-> JSP(HTML, 프리젠테이션을 처리하는 코드와 간단한 자바 코드) <-> 자바 빈즈(비즈니스 로직을 처리하는 자바 클래스)

 

 

 

 


자바 빈즈의 구성

구성도 자바 빈즈 내 코드
필드 private String name;
setter public ... setName(...);
getter public ... getName();
다른 메소드
(주로 필드를 통한 함수를 만들 때 사용)
public ... getGrade()

자바 빈즈를 활용하는 액션 태그

<jsp:useBean id ="id명".../>

JSP 와 연관시켜 자바 빈즈를 선언하는 태그(속성 id, class 필수)
속성
id 객체 참조를 저장하려는 변수명, JSP 페이지 내에서 자바 빈즈의 참조 변수를 저장하는 변수 이름을 지정
class 객체 참조의 클래스명, 생성할 자바 빈즈의 클래스 이름
scope  자바 빈즈의 유효 범위를 나타내며 지정하지 않으면 기본 값은 page
<jsp:useBean id = "id명" class="class명" />
<% Class명 id명 = new Class명(); %>
ex)
<jsp:useBean id="test" class="ClassName"/>
<%ClassName test = new ClassName();%>

 

<jsp:setProperty name ="name명".../>

이미 선언된 자바 빈즈에서 속성 property로 지정된 이름을 갖는 메소드 setter를 호출하는 문장(속성 name, property 필수)
속성
name <jsp:useBean>에서 지정한 id 로 지정
property 자바 빈즈의 setter()의 이름 setName()에서 set을 제거한 name으로 지정하며 값이 "*"라면 패라미터의 모든 값을 지정한다는 의미
value 속성 property와 함께 쓰이며, 자바 빈즈의 setter()의 setName(value)에 지정하는 인자(매개변수)값인 value 지정
<jsp:useBean id="id명" class = "class명" scope="scope값"/>
<jsp:setProperty name="id명" property="class명" value="값"/>
ex)
<jsp:useBean id = "test" class = "ClassName" scope="application/>
<jsp:setProperty name = "test" property="name" value="이시온"/>
name과 property가 있으면 property로 지정된 같은 이름으로 패라미터 인자를 이용하는 문장
<jsp:setProperty name="id명" property="class명"/>
<%id명.setclass명(request.getParamter("class명")); %>
ex)
<jsp:setProperty name="test" property="name"/>
<%test.setName(request.getParamter("name"));%>
name과 propery, param이 모두 있으면 param으로 패라미터 인자를 이용하는 문장
<jsp:setProperty name="id명" property="class명" param="패라미터 인자"/>
<%id명.setclass명(request.getParamter("패라미터 인자")); %>
ex)
<jsp:setProperty name = "test" property="name" param="username"/>
<%test.setName(request.getParamter("username"));%>

 

<jsp:getProperty name ="id명" class ="class명" .../>

생성된 자바 빈즈의 객체를 이용해 getter로 속성 값 반환
속성
name <jsp:useBean>에서 지정한 id 로 지정
property 자바 빈즈의 getter() 이름 getName()에서 name으로 지정
<jsp:useBean id = "id명" class="Classclass명" />
<jsp:getProperty name="id명" property="class명"/>
<%= id명.getClass명(); %>
ex)
<jsp:useBean id = "test" class = "ClassName"/>
<jsp:getProperty name = "test" property ="name"/>
<%=test.getName();%>

Scope 속성 값

page 자바 빈즈가 현재의 JSP 페이지 내에서만 사용 가능하며 기본 값이므로 특별히 지정하지 않으면 이 옵션이 적용되며 가장 좁은 범위의 scope 값
request JSP 페이지는 request객체가 영향을 미치는 모든 JSP 페이지까지 자바 빈즈 이용 가능
session 세션이 유효한 페이지까지 자바 빈즈 이용 가능
application 응용 프로그램의 모든 페이지에서 자바 빈즈 객체 사용 가능, 이 값은 가장 넓은 범위 scope 값

 

 

반응형
Comments