ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JSP - 자바빈(Bean)
    기타/Servlet 2020. 12. 10. 17:30

    정의

    JSP 페이지의 주요 기능 중 하나는 데이터를 보여주는 것이다.

    그런데 출력하는 부분이 하나의 JSP로 뒤섞여 있으면 

    기능 확장의 어려움과 코드 재사용의 어려움을 겪는다.

    그래서 JSP에서는 데이터를 자바빈이라는 클래스에 담아 보여준다.

    Bean을 통해 JSP와 클래스 간의 데이터를 쉽게 연동하고 뷰 데이터 교환에 사용된다.

     

    자바빈은 클래스임으로 기존 자바 클래스를 작성하는 방법과 동일하다.

     

    자바빈 작성규칙

    1.멤버 변수마다 별도의 get / set 메소드가 존재해야한다.

    2. get메소드는 파라미터가 존재하지 않아야 한다.

    3. set메소드는 반드시 하나 이상의 파라미터가 존재해야 한다.

    4. 빈즈 컴포넌트의 속성은 반드시 읽기 또는 쓰기가 가능해야 한다.

    5. 생성자는 파라미터가 존재하지 않아야 한다.

     

    자바빈 액션태그

    1. <jsp:useBean>

    <jsp:useBean id="빈이름" class="자바빈 클래스 이름" scope="범위" />
    
    //위의 액션태그를 코드로 바꾸면 아래처럼 된다.
    
    클래스이름 member = (클래스이름)request.getAttribute("빈이름");
    if(member == null){
    	member == new 클래스이름();
        request.setAttribute("빈이름", member)
    }

     

    자바빈 객체를 생성하는 액션태그

    useBean 태그로 생상하는 객체의 클래스는 반드시 기본 생서자만을 가져야 한다.

     

    태그속성

    id - JSP페이지에서 자바빈 객체에 접근 할 때 사용하는 이름이다.

    class - 패키지 이름을 포함한 자바빈 클래스의 완전한 이름을 입력 (생략불가능)

    scope :

    자바빈 객체가 저장될 영역을 지정.

    객체가 생명주기를 나타낸다.

    page, request, session, application 중 하나를 값으로 갖는다.

    기본값은 page 

     

    태그에서 id 속성에서 지성한 이름의 속성 값이 있을 경우 그 객체를 그대로 사용하고

    없을 경우 새로운 객체를 생성한다.




     

     

    2. <jsp:setProperty>

    <jsp:setProperty name="자바빈" property="이름" value="값" />

     

    생성된 객체의 setter메소드를 호출할 때 사용

     

    태그속성

    name:

    프로퍼티 값을 변경할 자바빈 객체의 이름

    <jsp: useBean> 액션 태그의 id 속성에서 지정한 값을 사용

    property: 값을 지정할 프로퍼티의 이름

    value: 프로퍼티 값 표현식 사용가능

     

     

     

     

    3. <jsp:getProperty>

    <jsp:getProperty name="자바빈" property="프로퍼티이름" />

    생성된 객체의 getter메소드를 호출할 때 사용

     

    태그속성

    name: <jsp:useBean>의 id 속성에서 지정한 자바빈 객체의 이름

    property: 출력할 프로퍼티의 이름

     

    '기타 > Servlet' 카테고리의 다른 글

    JSP - 게시판 만들기 연습  (0) 2020.12.15
    JSP-JDBC/mybatis 연습예제  (0) 2020.12.11
    JSP - 예외처리 (Exception)  (0) 2020.12.10
    JSP- 세션(Sesssion)  (0) 2020.12.09
    JSP- 쿠키(Cookie)  (0) 2020.12.09

    댓글

Designed by Tistory.