즉, 레고와 같다고 보면된다.
그렇기에 이런 모듈들을 조합할려면 규격화된 인터페이스가 필요하다
Java EE(Java Enterprise Edition)의 핵심
- 애플리케이션에서 비즈니스 로직을 구현하려는 컴포넌트 모델
보안을 중시하고 규모가 크며 확장 및 다른 시스템과의 상호·운용을 필요로 하는 애플리케이션 개발에
필요한 핵심 기술- JPA(Java Persistence API)를 핵심으로 하는 Java EE 5가 발표되면서(최신 버전은 JavaEE 7) 기존 엔티티빈(EJB 빈 유형 중 하나)의 상당 부분이 대체됨
- JSP도 JavaEE 의 프레젠테이션 레이어의 한 부분으로 볼 수 있음
뭐..이런 얘기가 있다..
이런.. 구성을 띄고 있다.
- 자바 클래스로 일반 클래스처럼 사용 가능
- JSP 파일의 Scriptlet 에서 인스턴스를 만들어 사용 가능
- JSP Beans만의 특징적인 요소를 잘 활용하면 더욱 편하게 프로그램을 작성가능
- 사용자 입력 처리에 필요한 HTML이나 JSP와 폼의 액션에 연결된 JSP 파일 필요
- 폼을 처리하는 JSP 파일에서 참조할 Beans 클래스도 필요
- 경우에 따라 결과를 보여주는 HTML이나 JSP 파일이 필요
- 빈은 default 패키지가 아닌 특정 패키지에 속해야 함
- 기본 생성자가 있어야 함
- 멤버 변수는 private으로 선언
- 멤버 변수의 접근을 위한 getter/setter 메서드 필요(public 접근자)
- 객체의직렬화(선택)
JSP에서 JavaBeans와 연동하기 위해 만들어진 JSP 컴포넌트 클래스
- JavaBeans과 결합해 웹 프로그램을 더욱 간편하고 단순한 구조로 개발 지원
- JavaBeans와 모듈화 지원
- 컨테이너에 위치, JSP에 데이터베이스 연동 등✨
- 데이터 처리와 공용화된 기능을 제공
- 프로그램의 중복을 줄이고 더욱 원활한 유지·보수 가능
- JSP 코드 내에 Scriptlet보다는 JSP Beans를 만들어 사용하는 것이 좋음✨
개별 JSP에서 Beans에 접근하는 것보다 Controller에서 Beans를 모델로 연동
request, session, application 등 내장 객체의 속성 관리 기능을 이용해 해당 뷰(JSP)에 Beans 객체를 전달하는 방법이 권장
일반적인 자바 클래스
- 데이터를 담을 property(맴버변수)
- 데이터를 가져오거나 세팅하는 method로 구성
- 클래스명 : 자바빈 클래스의 이름은 Bean을 붙임
- 맴버 변수 : private으로 지정
- getter/setter 메서드
- set 메서드 : set맴버변수명()
- get 메서드 : get맴버변수명()
class MyBean {
private String username; // 멤버변수
public String getUsername() { // get메서드 : 멤버변수명과 매칭
return username;
}
public setUsername(String username) { // set메서드 : 멤버변수명과 매칭
this.username = username;
}
}
<jsp:useBean> 액션을 사용하여 JSP에서 빈즈 선언
<jsp:useBean id="빈이름" class=JavaBean 클래스 경로" scope="영역" />
<jsp:useBean id="mybean" class="MyBean" scope="request" />
<%
MyBean mybean = (MyBean)request.getAttribute("mybean");
if(mybean == null) { // 기존에 Bean 객체가 없는 경우
mybean = new MyBean();
request.setAttribute("mybean", mybean);
}
%>
<% MyBean mybean = new MyBean(); %>
JSP에서 Beans를 선언 후, setProperty, getProperty액션으로 빈즈 값 이용
<jsp:setProperty name="빈이름" property="프로퍼티명(맴버변수)" [value="값"] />
<jsp:setProperty name="mybean" property="username" value="test1" />
property="*"
value속성의 값
<jsp:setProperty name="mybean" property="username" />
<%
mybean.setUsername(request.getParameter("username"));
%>
가져오는건 getProperty으로 가져오면된다.
<jsp:getProperty name="빈즈명" property="프로퍼티명" />