■ 자바 빈 만들기
-. 자바 빈은 자바 진영의 컴포터는이므로 클래스로 구성된다.
그러므로 빈의 구성요소 역시 클래스를 구성하는 요소인 필드와 메소드가 된다.
구성요소 |
의 미 |
필드 |
-. 빈이 가진 속성을 의미한다 멤버변수 형태로 제공된다. |
메소드 |
-. 빈을 외부에서 조작할 수 있도록 하는 방식들을 제공해 준다. 멤버함수 형태로 제공된다. |
# 자바 빈 만들기
예 제 |
package hello; // 패키지 선언
public class HelloBean { // 클래스 선언 private int age = 20; // 필드 선언 // 정수형태로 나이를 저장할 age는 자바의 캡슐화라는 개념에 입각해서 // 필드에 접근하지 못하게 하기 위해서 접근(엑세스) 지정자 private로 한다. } |
① set
public void setAge(int age) { this.age = age; } |
-. 프로퍼티에 값을 저장하기 위한 방법으로 제공되는 메소드는 set으로 시작하며 set다음에는 프로퍼티의 이름이 따른다.
-. setAge는 외부에서 값을얻어와서 필드에 값을 저장해야 하기에 전달인자가 필드와 동일한 자료형태(int)로 선언
-. 전역(멤버)변수와 이름이 동일한 경우에는 전역(멤버)변수의 앞에 this를 붙여서 전달인자와 구분해 준다.
② get
public int getAge() {
return age; } |
-. 프로퍼티에 값을 불러오기 위한 방법으로 제공되는 메소드는 get으로 시작하며 get다음에는 프로퍼티의 이름이 따른다.
-. getAge는 내부에서 저장된 값을 외부에 알려주어야 하기 때문에 전달인자는 없고
메소드의 리턴형이 필드와 동일한 자료형태(int)로 선언되어 있다.
# 자바 빈(Bean) 만들기
HelloBean.java |
package hello; |
■ 자바 빈(Bean)관련 액션태그
태그의 종류 |
설 명 |
jsp:useBean |
-. 빈(Bean)을 생성하고 사용하기 위한 환경을 정의하는 액션태그이다. |
jsp:setProperty |
-. 액션태그는 빈에 속성 값을 할당한다. |
jsp:getProperty |
-. 액션태그는 빈에서 속성 값을 얻어올 때 사용한다. |
01. <jsp:useBean> 액션태그
-. JSP에서 빈(Bean) 객체(인스턴스)를 생성하기 위해서는 <jsp:useBean> 액션 태그를 사용한다.
-. 액션태그의 기본 형식
형 식 |
<jsp:useBean class = "자바 빈 클래스이름" id = "빈 이름" scope = "범위"/> |
예 제 |
<jsp:useBean class = "hello.HelloBean" id = "myBean" scope = "page"/> ① ② ③ |
① 클래스(Class)
-. JSP에서 빈(Bean) 객체(인스턴스)를 생성하기 위해서는 클래스를 지정하여야 한다.
-. Class 다음에는 자바 빈의 실제 클래스 이름을 기술한다.
-. 특정 패키지에 존재한느 클래스일 경우에는 패키지 이름과 클래스 이름을 동시에 기술한다.
<jsp:useBean class = "hello.HelloBean" id = "myBean" scope = "page"/> |
② 아이디(id)
-. id 속성에 지정한 이름인 "myBean"으로 메소드를 호출할 수 있다.
<jsp:useBean class = "hello.HelloBean" id = "myBean" scope = "page"/> ... 이름 : <%= myBean.getName( ) %><br/> 나이 : <%= myBean.getAge( ) %> |
※ java 객체 생성과 자바 <jsp:useBean>의 비교
③ 스코프(scope)
-. scope 속성은 <jsp:useBean> 태그의 id 속성에 의해 생성된 인스턴스가 사용될 수 있는 기간을 설정한다.
-. 빈 객체가 언제까지 메모리에 존재하여 사용도리 수 있도록 할지 기간을 결정한다.
-. scope 속성 값으로는 page | request | session | application 네 가지 중 하나로 지정할 수 있다.
스코프 |
의 미 |
page |
-. 객체는 생성된 페이지 내에서만 접근되어 사용될 수 있다. |
request |
-. 객체가 생성된 요청을 수행하는 페이지들에서 사용될 수 있다. |
session |
-. 객체가 생성된 세션에서 요청을 처리한느 페이지들에서 사용된다. |
application |
-. 객체가 생성된 응용프로그램에 포함된 페이지들에서 사용된다. |
-. 만일 scope 속성 값을 지정하지 않으면 디폴트 page가 설정된다.
※ 디폴트(default)
-. 응용 프로그램에서 사용자가 별도의 명령을 내리지 않았을 때, 시스템이 미리 정해진 값이나
조건을 자동으로 적용시키는 것
# <jsp:useBean> 태그를 사용하는 간단한 예제
helloBean.jsp |
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> |
출력화면 |
02. <jsp:getProperty> 액션태그
-. <jsp:getProperty> 액션태그는 빈 객체의 프로퍼티 값을 되돌려 주는 기능을 제공한다.
-. 매핑구조
03. <jsp:setProperty> 액션태그
-. <jsp:getProperty> 액션태그는 빈의 프로퍼티에 값을 설정하는 기능을 제공한다.
-. 매핑구조
# 회원 정보를 저장하는 빈(Bean) 만들기
MemberBean.java |
package magic; public class MemberBean { private String id; // 아이디 private String pw; // 비밀번호 private String name; // 회원이름 private int mclass; // 회원구분 코드 private String phone1; // 전화번호1 private String phone2; // 전화번호2 private String phone3; // 전화번호 3 public MemberBean() { } // 이클립스에서 자동 추가된 기본(디폴트) 생성자 public String getId() { return id; } public void setId(String id) { this.id = id; } public String getPw() { return pw; } public void setPw(String pw) { this.pw = pw; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getMclass() { return mclass; } public void setMclass(int mclass) { this.mclass = mclass; } public String getPhone1() { return phone1; } public void setPhone1(String phone1) { this.phone1 = phone1; } public String getPhone2() { return phone2; } public void setPhone2(String phone2) { this.phone2 = phone2; } public String getPhone3() { return phone3; } public void setPhone3(String phone3) { this.phone3 = phone3; } } |
usingBeanAddForm.jsp |
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> |
출력화면 |
usingBeanAddForm.jsp |
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> |
출력화면 |
'JSP > JSP Programming' 카테고리의 다른 글
[JSP] 모델 2 기반의 MVC 패턴의 개요 (1) | 2012.08.29 |
---|---|
[JSP] 이클립스에 데이터 베이스 연동하기 (0) | 2012.06.05 |
[JSP] 자바 빈(Bean)이란? (0) | 2012.06.05 |
[JSP] 예외 코드별 예외처리 (0) | 2012.06.05 |
[JSP] 에러 페이지를 이용한 예외처리 (0) | 2012.06.05 |