Transcript Chap_10
10장 자바빈(JAVABEAN) 이장에서 배울 내용 : 화면에 표시를 담당하는 JSP페이지와 실제프 로그램을 처리하는 로직을 분리하는 것에 대해서 학습한다. 하나의 JSP페이지 안에 디자인부와 로직부가 혼재하게 되면 프로그램의 협 업과 유지보수가 어렵다. 자바빈은 로직을 처리하는 부분을 JSP페이지 내에서 따로 추출해서 별도의 자바파일로 작성을 하는 것이다. 따라서 이번 장에서 JSP의 로직부분을 담당하고 있는 자바빈이 무엇이고 어떻게 작성하고 사 용하는지를 학습하는 것이 목적이다. 김은옥([email protected]) 목차 자바빈(JavaBean)의 개요 자바빈(JavaBean) 만들기 : 자바빈 클래스작성 자바빈과 useBean액션태그의 연동 자바빈(JAVABEAN)의 개요 자바빈을 사용하는 목적 : JSP 페이지에 화면 표시부분과 로직들이 함께 존재해서 복잡하게 구성되는 것을 가능한 피하고, JSP 페이지의 로직 부분을 분리해서 코드를 재사용함으로 프로그램의 효율을 높이는 것. 자바빈(JAVABEAN) 만들기 : 자바빈 클래스작성 자바빈(JavaBean) 클래스 작성 자바의 클래스를 작성할 때의 기본적인 순서 1. package 패키지명; //없으면 생략가능 2. import 패키지명을 포함한 클래스의 풀네임; //없으면 생략가능 3. class 클래스명{ } 자바의 클래스를 선언 접근제어자 [키워드] class 클래스명{} 자바빈(JAVABEAN) 만들기 : 자바빈 클래스작성 자바빈의 클래스선언:접근제어자를 public을 사용 멤버변수 : 접근제어자는 private 사용 자바빈에서는 멤버변수를 프로퍼티(property)라고 도 부름. setter/getter메소드 : 프로퍼티의 값을 저장하 고 얻어내는 메소드, 접근 제어자는 public을 사용 자바빈(JAVABEAN) 만들기 : 자바빈 클래스작성 자바빈 클래스 예시 package bean.logon; public class DbDataLogin{ //자바빈 클래스 //프로퍼티 private String id; //setter메소드 public void setId(String id){ this.id=id.trim(); } //getter메소드 public String getId(){ return id; } 자바빈과 USEBEAN액션태그의 연동 JSP페이지에서는 자바빈을 사용하기 위해서 3가지의 액션태그를 제공. 객체를 생성: useBean액션태그 (<jsp:useBean>) 자바빈 객체의 프로퍼티 값을 저장: setProperty액 션태그(<jsp:setProperty>) 자바빈 객체에서 저장된 프로퍼티 값을 얻어내기: getProperty액션태그 (<jsp:getProperty>) 자바빈 자바빈과 USEBEAN액션태그의 연동 자바 빈 관련 액션태그 자바 빈 관련 액션태그 <jsp:useBean id="..." class="..." scope="..."/> 자바빈 객체를 생성 <jsp:setProperty name="..." property="..." value="..."/> 생성된 자바빈 객체에 프로퍼티 값을 저장. <jsp:getProperty name="..." property="..." /> 생성된 자바빈 객체에서 저장된 프로퍼티 값을 사용하기 위해 얻어냄. 자바빈과 USEBEAN액션태그의 연동 자바 빈 객체 생성 : useBean액션태그 (<jsp:useBean>) 사용하는 방법 <jsp:useBean id= "빈 이름" class="자바빈 클래스 이름" scope="범위" /> id속성: 생성될 자바빈 객체(인스턴스)의 이름을 명시. 필수 속성으로 생략이 불가능. class속성: 객체가 생성될 자바빈 클래스명을 기술. 이때 패 키지명을 포함한 자바클래스의 풀네임을 기술. 필수 속성으 로 생략이 불가능. scope속성: 자바빈 객체의 유효범위로 자바빈 객체가 공유되 는 범위를 지정. scope속성 값으로는 page, request, session, application을 가지며 scope속성 생략 시, 기본 값은 page. 자바빈과 USEBEAN액션태그의 연동 <jsp:useBean>액션태그에서 id속성 값에 지정 한 객체의 레퍼런스명이 이미 존재하는 경우, 기존에 생성된 객체를 그대로 사용. 자바빈과 USEBEAN액션태그의 연동 프로퍼티 값 설정 : setProperty액션태그 (<jsp:setProperty>) <jsp:setProperty>액션태그는 자바빈 객체의 프로퍼티 값을 저장하기 위해 사용 <jsp:setProperty name= "빈 이름" property="프로퍼티 이 름" value="프로퍼티에 저장할 값 " /> name속성: 자바빈 객체의 이름을 지정. 필수 속성으로 생략 이 불가능. property속성: 프로퍼티명을 지정. 필수 속성으로 생략이 불 가능. value속성: 프로퍼티에 저장할 값을 지정. 생략 가능. 자바빈과 USEBEAN액션태그의 연동 한 번에 각각의 프로퍼티의 값을 지정 <사용자 입력폼> <tr> <td bgcolor="" class="normalbold" width="200"> 사용자 ID</td> <td width="400"> <input type="text" name="id" size="10" maxlength="10"> <input type="button" name="confirm_id" value="ID중복확인" OnClick="openConfirmid(this.form)"> </td> </tr> 자바빈과 USEBEAN액션태그의 연동 한 번에 각각의 프로퍼티의 값을 지정 <자바빈을 사용하는 JSP페이지> <jsp:useBean id="inDb" scope="page" class="bean.logon.DbDataLogin"> <jsp:setProperty name="inDb" property="id"/> </jsp:useBean> <자바빈 클래스> public void setId(String id) { this.id = id; } 자바빈과 USEBEAN액션태그의 연동 프로퍼티 값 얻기 : getProperty액션태그 (<jsp:getProperty>) <jsp:getProperty>액션태그는 자바빈 객체에서 저 장된 프로퍼티 값을 얻어내서 사용 <jsp:getProperty name= "빈 이름" property="프로퍼 티 이름" /> name속성: 자바빈 객체의 이름을 명시. 필수 속성으로 생략이 불가능. property속성: 프로퍼티 명을 기술. 필수 속성으로 생략 이 불가능