클라이언트/ 서버/ 엔지니어 " 게임 개발자"를 향한 매일의 공부일지

자바 빈과 액션 태그 2 - 자바 빈 관련 액션 태그 본문

웹 · 앱 개발/JSP & Servlet

자바 빈과 액션 태그 2 - 자바 빈 관련 액션 태그

huenuri 2024. 8. 30. 07:40

이 소단원에서도 개념 학습할 부분이 많이 있다. 그래도 차근차근 학습해볼 것이다.


 

 

 

자바 빈 관련 액션 태그

자바 빈의 의미와 작성 방법을 살펴보았으므로 이제 JSP에서 어떻게 활용하는지 알아보겠다. JSP에서는 자바 빈을 사용하기 위한 액션 태그를 다음과 같이 제공한다.


 

 

1. 자바 빈 객체를 생성하는 <jsp:useBean> 액션 태그

JSP와 자바 빈을 연결하기 위한 자바 빈 객체를 생성한다. 자바에서 객체를 생성하는 다음 코드와 동일한 동작을 한다.

<%@ page import = "com.MemberBean" %>
<%
MemberBean member = new MemberBean();
%>

 

page 지시자에 import 속성을 추가하면 간단하게 객체 생성을 할 수 있다. 하지만 액션 태그에서 빈 객체를 생성할 경 우에는 풀네임 형식(패키지를 포함한 형태의 클래스 이름)으로 적어 주어야 한다. page 지시자를 추가하지 않고 서술하면 다음과 같이 긴 코드가 된다.

<%
com.MemberBean member = new com.Memberbean();
%>

 

자바에서는 new 다음에 클래스명을 기술하여 객체를 생성한다. 이렇게 생성한 객체는 레퍼런스(참조) 변수로 접근할 수 있다. 다음은 레퍼런스 변수로 이름과 아이디를 얻어오기 위한 getter 호출 예이다.

<%= member.getName() %>
<%= member.getUserid() %>

 

 

 

기본 형식에서 [ ]는 생략 가능한 부분이다. <jsp:useBean> 액션 태그로 객체를 생성하기 위해서는 class 속성에 패키지를 포함한 자바 빈 클래스의 풀 네임을 기술해야 한다. id 속성은 새롭게 생성하는 자바 빈 객체의 이름을 기술한다.

scope 속성에는 자바 빈 객체가 사용되는 유효 범위를 지정하기 위해 page, request, session, application 중 하나를 사용해야 한다.

다음은 <jsp:useBean> 액션 태그를 사용하여 객체를 생성하는 예이다.

 

자바 언어와 마찬가지로 JSP에서 자바 빈 객체를 생성하기 위해서는 클래스를 지정해야 한다. class 다음에는 자바 빈 클래스 이름을 기술한다. 특정 패키지에 존재하는 클래스일 경우에는 패키지 이름까지 기술한다.

class 속성 값은 자바에서 객체를 생성할 때 기술한 클래스 이름과 매핑된다.

 

 

scope 속성은 <jsp:useBean> 태그에 의해 생성된 객체가 사용될 수 있는 유효 범위를 결정한다. 

 

 

 

톰캣을 restart시켜 서버를 재시작하기 전까지 자바 빈 객체를 계속 사용하려면 scope 속성 값을 application으로 설정한다.

scope 속성을 생략한 채 생성한 자바 빈 객체는 해당 페이지에서만 사용 가능하고 다른 페이지로 이동하였을 경우에는 자바 빈 객체를 사용할 수 없게 된다.


 

 

 

 

자바 빈 객체 생성하기(useBean 액션 태그)

 

 

객체 생성하기 전에는 아무것도 없는 null이었는데 생성 후에는 정보가 입력되어 제대로 출력이 되고 있다.


 

 

 

 

2. 자바 빈에서 정보를 얻어오는 <jsp:getProperty> 액션 태그

다음은 회원의 이름을 얻기 위해 getName()을 호출한 예이다.

<%= member.getName() %>

 

JSP에서 getter를 호출하기 위해서 스크립트릿 안에 자바 코드를 기술해야 한다. 다음은 회원의 이름을 얻기 위해 getName()을 호출하는 대신 <jsp:getProptery> 액션 태그를 사용한 예이다.

<jsp:getProperty name = "member" property = "name"/>

 

JSP에서는 getter를 위와 같이 호출하기 보다는 액션 태그인 <jsp:getProptery>를 사용한다. 왜냐하면 JSP에서 HTML 태그와 자바 코드를 혼용하면 코드가 지저분해지기 때문이다. JSP 페이지에서는 HTML 태그와 함께 액션 태그를 사용하는 것이 코드가 깔끔해져서 가독성이 높아진다.

 

<jsp:getProperty> 액션 태그는 자바 빈 객체 필드에 저장된 값을 알려준다. 

 

<jsp:useBean> 액션 태그의 id 값과 일치하는 값인 "member"를 <jsp:getProperty> 태그의 name 속성 값으로 기술하여 <jsp:useBean> 액션 태그로 생성한 자바 빈 객체에 접근한다. 이렇게 접근하면 자바 빈 객체의 정보를 얻어올 수 있다.

property 속성은 자바 빈을 구성하는 여러 개의 필드 값을 알려주기 위한 여러 개의 getter 중에 어떤 것을 호출하는지 구분하기 위해서 존재한다.

property에 설정한 값이 name이면 첫 글자만 대문자로 지정하여 get 다음에 기술한다. 자바 코드와 매핑시켜 보면 이해하기 쉽다.

<jsp:getProperty> 액션 태그의 name 속성 값은 메소드 앞에 붙은 레퍼런스 변수 이름인 member를 의미한다.  property 속성 값은 get 다음에 기술된 Name의 첫 글자만 소문자로 변경한 것이다.

 


 

 

 

학습을 마치고

분량이 너무 많아서 하나 남은 액션 태그에 대한 설명은 다음 포스트에서 이어서 학습하기로 했다. 그리고 이제 얼마 남지 않았다. 회원 정보를 처리하는 부분만 실습하면 이 단원은 끝나게 된다. 아직 수업을 들어야 할 게 남아있지만 말이다.

자바 빈이 무엇인지 액션 태그는 어떨 때 사용하는지 등을 배울 수 있었다.