7. JavaBeans 프로그래밍 JavaBeans JavaBeans 만들기 Bean을 이용한 회원가입 양식 작성하기 Bean을 이용하는 JSP 파일 작성 Bean을 이용한 회원가입 양식 작성하기
o 자바빈즈(JavaBeans)란 컴포넌트 형태로 제작된 자바 모듈 JSP 페이지가 복잡한 자바코드로 구성되는 것을 피하고 JSP 페이지에는 HTML과 같은 쉽고 간단한 코드만을 구성하도록 하는 것이 목적 컴포넌트들의 개별 -> Bean 효율성, 재사용 등의 측면에서 장점 << 자바빈즈를 이용한 JSP 프로그래밍 >>
o 자바빈즈 만들기 빈 작성 정보를 저장하는 변수는 모두 private로 선언 private로 선언된 변수의 값을 저장하는 메소드를 만듬. 메소드의 이름은 setXxx()형식으로 만듬. Xxx는 변수의 이름과 같으며 첫 글자는 대문자 private로 선언된 변수의 값을 가져오는 메소드를 만듬. 메소드의 이름은 getXxx()형식으로 만듬. Xxx는 변수의 이름과 같으며 첫 글자는 대문자 setXxx() 메소드와 getXxx() 메소드를 public으로 선언
빈 작성 빈즈 클래스 구성 멤버 변수 getter 메소드 (getXxx()) setter 메소드 (setXxx()) pulbic class xxxBean { // 멤버 변수, DB 테이블의 컬럼 이름과 매칭된다. private String xxx; private int xxx; // get, set 메서드, 멤버 변수와 매칭된다. public getXxx() { return xxx; } public setXxx(String xxx) { this.xxx = xxx;
멤버변수 getter 메소드 클래스외부에서의 접근을 막기위해 private 로 선언함 멤버변수이름, HTML form 이름, DB테이블 컬럼명을 일치하는 것이 좋음. getter 메소드 멤버변수의 값을 리턴하는 메서드 getXxx() 와 같이 이름을 붙여야 한다. 멤버변수명의 첫글자를 대문자로 해야함(Bean 액션과 연동). <jsp:getProperty name=”gb” property=”username” /> -> 내부적으로 getUsername() 메서드를 호출하게됨.
setter 메소드 멤버변수에 값을 설정하는 메서드 setXxx()와 같이 이름을 붙여야 한다. 멤버변수명의 첫글자를 대문자로 해야함. <jsp:setProperty name=”gb” property=”username” /> 내부적으로 setUsername(request.getParameter(“username”))과 함께 호출
빈 만들기 Tomcat 7.0\webapps\root\WEB-INF\classes 에 저장 //SimpleBean.java 01 package ch07; 02 03 public class SimpleBean { 04 05 private String message = ""; 06 07 public String getMessage() { 08 return message; 09 } 10 11 public void setMessage(String message) { 12 this.message = message; 13 } 14 15 }
빈 컴파일 javac [옵션] [자바소스파일] 옵션 : -d 디렉토리 경로 :주어진 디렉토리 경로에 패키지 구조대로 폴더를 생성하여 자바 파일을 컴파일 << 자바빈즈 컴파일 >> ch07 폴더 생성 후 컴파일해도 무방함
빈을 이용하는 JSP 파일 작성 빈을 사용하기 위한 액션 태그 제공 -> 빈 태그 빈 태그 빈 관련 태그 내용 <jsp:useBean id="..." class="..." scope="..."/> 빈을 생성하여 둡니다 <jsp:setProperty name="..." property="..." value="..."/> 빈에 값을 저장합니다 <jsp:getProperty name="..." property="..." /> 빈의 값을 가져옵니다
빈을 생성하기( useBean 액션 ) useBean 액션 속성 목록 <jsp:useBean id=“myBean” class=“ch07.SimpleBean” scope=“page”/> 빈즈 클래스 범위로 page, request, session, application이 올 수 있음 scope 빈즈 클래스 클래스명으로 패키지 경로를 포함 class 빈즈 클래스 인스턴스명으로 사용할 변수 id 설명 속성
scope의 종류 종류 설명 page 해당 JSP 페이지 내에서만 존재 request session 사용자가 최초에 접속하여 접속을 종료되기까지 존재 application 해당 어플리케이션이 살아 있는 동안 함께 존재
빈에 값을 넣기( setProperty 액션 ) <jsp:useBean id=“myBean” class=“ch07.SimpleBean” scope=“page”/> <jsp:setProperty name=“myBean” property=“*”/> 속성 값으로 빈즈 클래스의 setXxx (Xxx 는 속성 이름) 메서드와 대응할 속성 값. “*”를 지정하면 모든 setXxx에 자동으로 대응된다. property 빈즈 클래스 인스턴스명으로 id 값에 설정한 변수명 name 설명 속성
빈의 저장된 값을 가져오기( getProperty 액션 ) <jsp:useBean id=“myBean” class=“ch07.SimpleBean” scope=“page”/> <jsp:setProperty name=“myBean” property=“*”/> <jsp:getProperty name=“myBean” property=“name”/> 속성 값으로 빈즈 클래스의 getXxx (Xxx 는 속성 이름) 메서드와 대응할 속성 값. property 빈즈 클래스 인스턴스명으로 id 값에 설정한 변수명 name 설명 속성
빈을 이용한 jsp 파일 예제 //SimpleBean.jsp 01 <%@ page contentType="text/html; charset=euc-kr" %> //page 지시자. 현재 페이지의 타입과 페이지의 인코딩을 지시 02 <jsp:useBean id="test" class="ch07.SimpleBean" scope="page" /> 03 <jsp:setProperty name="test" property="message" value="빈을 쉽게 정복하자!" /> 04 05 <html> 06 <body> 07 08 <h1>간단한 빈 프로그래밍</h1> 09 <br> 10 Message: <jsp:getProperty name="test" property="message" /> 11 12 </body> 13 </html>
o 빈을 이용한 회원가입 양식 작성하기 << 회원가입 프로세스 >>
1. 회원가입 입력 폼 작성 회원정보를 처리하기 위한 빈 작성 회원입력 정보확인 페이지 작성 Register.jsp RegisterBean.java 회원입력 정보확인 페이지 작성 RegisterProc.jsp