728x90
Java Beans
- 자바에서의 class를 JSP에서는 Java Beans라고 부른다.
- 스프링에서는 Model이라고 하며 해당 모델이 어디서 사용되느냐에 따라 MemverVO, MemberDTO, MemberDAO, Entity로 나뉜다.
- 자바로 작성되고 재사용이 가능한 소프트웨어 컴포넌트다.
Java Beans의 장점
- form data 처리가 용이하다.
- 수 많은 파라미터를 자바 빈에 담아 사용/전달 할 수 있다.
- 재사용성
- 하나의 JSP페이지에 종속적으로 사용되는 것이 아니라 여러 JSP페이지에서 사용될 수 있다.
- 컴포넌트 기반 구현
- Java Beans를 통해 객체와 관련된 작업들은 해당 클래스에서 작성 가능하다.
- Java Beans가 하나의 컴포넌트를 구성한다.
Java Beans의 관례
- 자바빈즈는 디폴트 패키지에 있으면 안된다.
- 기본 생성자를 가지고 있어야 한다.
- <jsp:useBean .../>호출시 사용한다.
- 속성들은 직접 접근하지 못하도록 만든다. private
- 속성들은 public getter/setter 를 통해 접근할 수 있어야 한다.
- getter/setter 관례를 따르지 않으면 호출 불가하다.
- 직렬화되어야 한다.
- Java Beans의 상태의 지속성을 위해 저장 혹은 복원 시키기 위함
- 필요한 이벤트 처리 메서드를 포함하고 있어야 한다.
- 뷰 단에서는 다양한 이벤트 처리가 있을 수 있다.
- Java Beans는 뷰 단에서 발생할 수 있는 이벤트 처리까지 핸들링할 수 있어야 한다.
Java Beans 액션태그
액션태그설명
<jsp:useBean id=”member” …/> | 자바빈즈 생성 |
<jsp:setProperty name=”member” …/> | 생성된 자바빈즈를 통해 속성값 변경 |
<jsp:getProperty name=”member” …/> | 생성된 자바빈즈를 통해 속성값 반환 |
Java Beans 생성
- 자바빈즈 클래스에서 기본 생성자 호출
- 자바빈즈 객체는 기본 생성자 정의되어야 함
<jsp:useBean id="simple" class="simple.SimpleBeans"/>
<%
SimpleBeans simple = new SimpleBeans();
// 이렇게 쓰는 것과 동일 (해당 페이지 공간안에 객체 변수 이름 중복 조심)
%>
- 속성
- id : 주어진 페이지에서 java beans 객체를 식별할 수 있는 유일한 명칭을 지정 (영문자, 숫자, _ (언더바) 문자로 시작해야 함)
- class : 사용하려는 java beans 객체의 실제 클래스명을 패키지명과 함께 지정
- type(생략가능)
- 자바빈즈 클래스의 객체에 접근할 때 어떠한 타입으로 접근할 것인지 지정
- 해당 속성이 생략되면 기본으로 주어진 자바빈즈 클래스의 타입으로 접근
- 특별히 부모 type으로 접근하게 하려면 type 속성을 사용하여 부모 타입으로 지정
- 빈 객체는 JSP 컴파일 단계에서 이 속성으로 지정되는 클래스 타입으로 변환됨
- scope(생략가능)
- scope 속성값으로 page, request, session, application 중 하나를 지정 가능
- 해당 속성이 생략되면 기본값으로 page 적용
- page : 하나의 JSP 페이지에서만 사용
- request : 요청이 처리되는 동안 forward, include 된 페이지 간에 사용
- session : 클라이언트 단위로 사용
- application : 웹 애플리케이션 단위로 사용
Java Beans를 통한 속성값 변경
- 일반적인 방법
<jsp:setProperty name="simple" property="name" value="a"/>
<jsp:setProperty name="simple" property="value" value="a123!"/>
<%
simple.setName("a");
simple.setValue("a123!");
%>
- value 생략
<jsp:setProperty name="simple" property="name"/>
<jsp:setProperty name="simple" property="value"/>
<%
simple.setName(request.getParameter("name"));
simple.setName(request.getParameter("value"));
%>
- property = "*"
<jsp:setProperty name="simple" property="*"/>
<%
simple.setName(request.getParameter("name"));
simple.setName(request.getParameter("value"));
%>
- 속성
- name : 사용하려는 java bean의 jsp:useBean 태그에서 정의해 놓은 id 속성값과 동일하게 지정
- property
- property 속성에는 값을 수정하려는 자바빈즈 객체의 멤버변수 이름을 지정
- * (와일드카드) 표기 가능
- 자바빈 객체의 속성값들을 일괄적으로 초기화 가능
- 클라이언트로부터 입력받은 request 객체에서 자바빈즈 객체에 바인딩하는 데 편리
- value 생략가능
- 자바빈즈 객체의 속성을 변경하려는 값을 지정
- 만일 값을 지정하지 않으면 request 객체의 멤버변수와 같은 name을 찾아서 자동 설정
- param 생략가능
- request 객체에서 param 속성 값과 같은 name의 값으로 자바빈의 속성값을 설정
- 주의사항
- 자바빈즈가 가진 필드가 name, value라면 setName(), setValue() 함수를 가져야 함
- 만약 함수이름이 다르면 setter 호출 불가 ( 관례 )
- request에 저장된 이름도 name, value 여야 함
- 자바빈즈가 가진 필드가 name, value라면 setName(), setValue() 함수를 가져야 함
Java Beans를 통한 속성값 반환
<jsp:getProperty name="simple" property="name"/>
<jsp:getProperty name="simple" property="value"/>
<%
simple.getName();
simple.getValue();
%>
'JSP&Servlet' 카테고리의 다른 글
JSP&Servlet - EL / JSTL (0) | 2022.11.18 |
---|---|
JSP&Servlet - Cookie&Session (0) | 2022.11.18 |
JSP&Servlet - Servlet(서블릿) (0) | 2022.11.18 |
JSP&Servlet - Application (0) | 2022.11.18 |
JSP&Servlet - Session (0) | 2022.11.18 |
댓글