자바빈(Java Bean)이란?
어제 EL, JSP Action Tag, jstl 구문 수업을 듣고,
EL에 대해 공부하려고 오라클 튜토리얼을 검색하다 보니 "JavaBean" 이라는 용어가 보였다.
https://docs.oracle.com/javaee/6/tutorial/doc/bnahq.html
The EL allows page authors to use simple expressions to dynamically access data from JavaBeans components.
페이지 관리자는 EL구문으로 간결한 표현을 통해 java bean구성요소로부터 동적인 데이터에 접근할 수 있다
여기서 꼬리를 무는 질문,,,
자바빈이 뭐야..? 몇 번 들어본 것 같은데..?
다시 검색해보았다.
https://docs.oracle.com/javaee/5/tutorial/doc/bnair.html
JavaBeans components are Java classes that can be easily reused and composed together into applications. Any Java class that follows certain design conventions is a JavaBeans component.
자바빈 요소는
쉽게 재사용 및 어플리케이션 구성이 가능한 자바 클래스이다.
특정 디자인 규약을 따르는 모든 자바 클래스는 자바빈 요소라고 불릴 수 있음
JavaServer Pages technology directly supports using JavaBeans components with standard JSP language elements. You can easily create and initialize beans and get and set the values of their properties.
JSP에서 JSP language elements를 통해 자바빈 사용이 가능
(bean 초기화 및 property 값 가져오기/세팅하기 가능)
즉, 자바빈은 자바빈 규약을 따르는 모든 자바 클래스를 통칭한다.
그렇다면 자바빈 규약이란..?
- defulat 패키지가 아닌 패키지 하위에 있는 클래스
- 기본 생성자가 존재 (no-arg constructor)
- Getter/setter를 통해서 properties를 조작(getProperty, setProperty)
- 멤버변수(property)의 접근제어자는 private이고 각 set/get메소드의 접근제어자는 public, 클래스의 접근제어자는 public으로 정의
자바빈 생성 및 사용법
<jsp:useBean id="bean이름"
class="클래스명" scope="범위(page, request, session,application 중 하나)"/>
<jsp:useBean id="beanName"
class="클래스명" scope="범위(page, request, session,application 중 하나)
<jsp:setProperty .../>
</jsp:useBean>
자바빈으로 멤버변수 값 얻는 법
1. EL 구문
${ 객체명.필드명}
2.jsp:getProperty 요소 사용하기
getProperty요소는 멤버변수 값을 String형으로 변환하여 response stream에 전달
<jsp:getProperty name="beanName" property="propName
자바빈을 사용하는 이유?
JSP는 MVC패턴 중 View단 구현에 사용되는데,
html 기반 코드에서 servlet단에서 넘겨받은 자바 요소를 사용하기 위해서 스크립팅 요소, 자바빈 등에서 선택하여 코드를 짤 수 있음
그러나 스크립팅 요소를 사용하게 되면, 스크립트 언어로 이루어진 뷰단의 통일감을 헤칠 수 있고 무엇보다 뷰단을 담당하는 퍼블리셔와의 소통에 어려움이 있을 수 있는데, JSP자체가 태그로 이루어진 스크립트 언어이고 , 퍼블리셔와 개발자간의 원활한 소통을 위해 자바코드로 이루어진 스크립트 요소보다 자바빈이 효율적
소회..
수업에서 세미프로젝트 view단을 짤 때에는 아직 자바빈을 배우지 않은 상태여서
스크립팅 요소들로 view단을 구성했었다. 그러다보니 초반 프로젝트 코드를 짤 때에는 뷰단만 가면 자바코드와 태그가 섞여서 아~ 정신없다~는 느낌이 들었는데javabean, el을 배우고 나니 여러모로 자바빈, jstl 등을 사용하는 것이 효율적이라는 것이 확 와닿았다
References
https://choitaetae.tistory.com/96
https://ttuk-ttak.tistory.com/39
https://docs.oracle.com/javaee/5/tutorial/doc/bnair.html
https://docs.oracle.com/javaee/6/tutorial/doc/bnahq.html
'기타' 카테고리의 다른 글
JSP Action Tag : JSP 표준 액션태그 (0) | 2022.12.14 |
---|---|
[jsp] EL구분(Expression Language)란? (0) | 2022.12.14 |
[JDBC] JDBC Template (0) | 2022.10.13 |
[JDBC] JDBC 실행 중 Statement와 PreparedStatement 차이 (0) | 2022.10.13 |
[JDBC] JDBC란? / JDBC 사용객체 / JDBC 처리, 동작순서 (1) | 2022.10.05 |