자바빈즈 태그 설명

  • <jsp:useBean/> 태그
    <jsp:useBean id=”자바빈 ID” class=”자바빈 클래스 이름” scope=”scope 영역 지정”/>

    /* 아래 두 문장은 같은 의미이다. */ 
    <jsp:useBean id="customer" class="mybean.customer.CustomerBean"/>
    mybean.customer.CustomerBean = new mybean.customer.CustomerBean();

    만약 자바빈 클래스 파일을 불러오면서 초기화할 내용이 있다면 <jsp:useBean/>을 시작 태그와 종료 태그 형태로 쓴 다음 가운데 초기화할 내용을 적어주면 됩니다.

    <jsp:useBean>
    ... 초기화할 내용 ...
    </jsp:useBean>

    scope 속성은 <jsp:useBean/> 태그의 속성 중의 하나로 자바빈의 사용 범위를 지정하는 속성입니다. 사용 범위를 지정한다는 것은 곧 자바빈이 생성되고 소멸되기까지 유지되는 영역의 지정을 의미합니다. scope에는 page, request, session, application의 네가지가 있는데 page를 기본값으로 갖고 있기 때문에 page 영역은 생략할 수 있습니다.

    page
    page 영역은 자바빈의 사용 범위가 현재 페이지라는 의미로, 자바빈이 포함되어 있는 페이지 내에서만 자바빈이 유효하고, 페이지를 종료하면 함께 자바빈 객체도 소멸합니다. 페이지를 다시 부르면 새로운 자바빈 객체가 만들어지므로 페이지의 시작과 종료가 곧 자바빈의 수명이 됩니다.

    request
    scope 속성이 request 영역으로 설정되어 있으면 생성된 자바빈 객체가 request 객체에 포함되게 됩니다. 이것은 현재 페이지뿐만 아니라 브라우저의 요청에 포함되어 있는 모든 페이지가 같은 자바빈 객체를 사용할 수 있다는 의미입니다. 요청에 대해 응답의 결과를 돌려주면 자바빈 객체도 함께 소멸됩니다.

    session
    scope 속성이 session 영역으로 설정되어 있으면 생성된 자바빈 객체가 session 객체에 포함되게 되어, 사용자와의 세션이 유지되고 있는 동안 자바빈 객체를 지속시킬 수 있습니다. 다시 말하여 사용자에게 부여한 세션 ID가 유지되고 있는 동안이 곧 자바빈 객체의 수명이 됩니다. 세션 ID가 유지되고 있는 동안은 사용자가 페이지를 몇 번 요청한다고 하더라도 동일한 자바빈 객체에 접근하는 것이 됩니다.

    application
    scope 속성이 application 영역이면 생성된 자바빈 객체가 application 객체에 저장되는데, 이것은 JSP 컨테이너를 종료하기 전까지 자바빈 객체를 유지합니다. 이 말은 곧 한 사람의 사용자가 아닌 현재 JSP 페이지를 사용하는 모든 사용자들이 같은 application을 사용한다는 의미이기 때문에 자바빈 객체가 모든 사용자에게 공유된다고 볼 수 있습니다. 이와 같이 모든 사용자들에게 공유되어 있는 채로 지속되기 원하는 자바빈 객체가 있다면 scope를 application 영역으로 지정하면 됩니다.

  • <jsp:setProperty/> 태그
    <jsp:setProperty name="자바빈 클래스 ID" property="속성 이름" value="속성값"/>

    request 객체를 이용한(form 태그를 통해 넘겨져 온) 파라미터 값을 자바빈즈에서 이용하려면 <jsp:setProperty/> 태그에서 다음과 같이 자바빈 클래스의 속성으로 넘겨집니다. 만약 파라미터의 이름과 자바빈의 속성 이름이 같다면 param 속성을 생략할 수 있습니다.

    <jsp:setProperty name="자바빈 클래스 ID" property="속성 이름" param="파라미터이름"/>
    <jsp:setProperty name="자바빈 클래스 ID" property="속성 이름"/>
  • <jsp:getProperty/> 태그
    <jsp:getProperty name="자바빈 클래스 ID" property="속성 이름"/>

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다