본문 바로가기
JAVA/JSP

JSP 자바 빈즈(Beans)

by KkingKkang 2023. 3. 17.
  • JSP는 HTML내에 JAVA코드를 넣어 동적인 페이지를 생성하는 스크립트 언어이다.
  • JSP 자바 빈즈는 JSP의 표준 액션 태그로 접근할 수 있는 자바 클래스로서
    값을 가지는 속성(멤버변수)와 값을 설정하는 메소드(setter), 값을 추출하는 메소드(getter)로 이루어져있다.
  • <jsp:useBean>
    <jsp:setProperty>
    <jsp:getProperty>

 

JSP 자바빈즈 개발 규약

  • 패키지화
    • JSP 페이지에서 자바빈즈를 사용할 때 기본 패키지에 있으면 인식이 안된다.
    • 반드시 패키지화 되어 있어야 한다
  • 기본 생성자 존재
    • 자바빈즈의 객체 생성은 jsp:useBean 액션 태그로 생성하는데, 객체가 생성될 때 기본 생성자를 이용하기 때문에 반드시 기본 생성자가 있어야 한다.
  • 멤버변수의 접근자는 private으로 선언
    • 자바빈즈 객체의 속성 값은 외부에서 직접 접근할 수 없도록 private으로 선언한다.
    • 자바빈즈 객체의 속성값은 메소드로만 접근하게 해야 한다.
  • getter / setter 메소드
    • private로 선언한 멤버 변수의 값을 반환하는 메소드를 작성한다.
  • getter setter접근자는 public으로 선언
    • public으로 선언해야 JSP페이지에서 이 메소드를 호출할 수 있다.

 

package job.study.beans;

public class HelloBean {

	private String name;
	private String number;

	public HelloBean() {
		this.name = "이름이 없습니다.";
		this.number = "번호가 없습니다.";
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getNumber() {
		return number;
	}

	public void setNumber(String number) {
		this.number = number;
	}

}
// 자바 코드
HelloBean hello = new HelloBean();
//표준 액션 태그
<jsp:useBean class="job.study.bean.HelloBean" id="hello">
  • id속성
    • 주어진 페이지에서 자바빈즈 객체를 식별할 수 있는 유일한 명칭을 지정할 때 사용
      이 id 속성의 값을 가지고와 각각의 객체를 구분
      id속성 값 지정 규칙 : 유일성 / 대소문자를 구분 / 영문자, 숫자, 언더바 문자로 시작
  • class속성
    • 사용하려는 자바빈즈 객체의 실제 클래스명을 패키지명과 함께 지정
  • type 속성
    • 자바빈즈 클래스의 객체에 접근할 때 어떤 타입으로 접근할 것인지 지정
      특별히 부모 type으로 접근하게 하려면 type속성을 사용하여 부모 타입으로 지정
  • scope 속성
    • page : 하나의 JSP페이지에서만 사용(기본값)
    • request : 요청이 처리되는 동안 forward, include 된 페이지 간에 사용
    • session : 클라이언트 단위로 사용
    • application : 웹 어플리케이션 단위로 사용

getter 메소드 호출

//자바 코드
hello.getName();

//표준 액션 태그 
<jsp:getProperty property="name" name="hello">
  • name 속성 : 사용하려는 자바빈의 <jsp:useBean> 태그에서 정의해 놓은 id 속성값과 동일하게 지정
  • property 속성 : property속성에는 값을 추출하려는 자바빈즈 객체의 멤버변수 이름을 지정

 

setter 메소드 호출

//자바 코드
hello.setName("codegizer");

//표준 액션 태그
<jsp:setProperty property="name" name="hello" value="codegizer">


//자바 코드
hello.setName(request.getParameter("irum"));

//표준 액션 태그 
<jsp:setProperty property="name" name="hello" param="irum">
  • name : 사용하려는 자바빈의 <jsp:useBean> 태그에서 정의해 놓은 id속성 값과 동일하게 지정한다.
  • property : property속성에는 값을 수정하려는 자바빈즈 객체의 멤버변수 이름을 지정한다.
  • value 속성 : 자바빈즈 객체의 속성을 변경하려는 값을 지정
  • param 속성 : 질의 문자열에서 param속성에 할당된 값과 같은 name의 값으로 자바빈의 속성값을 설정한다.

 

//표준 액션 태그
<jsp:setProperty property="*" name="hello">

//자바 코드
hello.setName(request.getParameter("name"));
hello.setNumber(request.getParameter("number"));
  • property = "*"
    • 자바빈 객체의 속성값들을 초기화하는 매우 강력한 방법이다.
      클라이언트로부터 입력받은 질의 문자열을 추출하여 자바빈즈 객체에 바인딩하는 데 편리하다.
반응형

'JAVA > JSP' 카테고리의 다른 글

JSTL 5가지 태그  (0) 2023.03.17
표현언어 EL  (0) 2023.03.17
액션 태그  (0) 2023.03.17
커넥션 풀  (0) 2023.03.17
JSP 파일 업로드  (0) 2023.03.17

댓글