New World
[JSP 공부 #3] 자바 빈즈(JAVA Beans) 본문
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 값 |
반응형
'Programming > Languages' 카테고리의 다른 글
[JSP 공부 #5] JDBC 프로그래밍 (0) | 2020.06.30 |
---|---|
[JSP 공부 #4] 데이터 베이스와 MySQL (0) | 2020.06.30 |
[JSP 공부 #2] 쿠키와 세션 (0) | 2020.06.29 |
[JSP 공부 #1] JSP 액션 태그 (0) | 2020.06.29 |
[파이썬 공부 #4] Tkinter, 이벤트 처리, 캔버스 (2) | 2020.06.17 |
Comments