자바빈
자바빈이란 DTO와 같은 자바 클래스를 이용해서 JSP 코드가 아닌 useBean을 사용하여 가져오는 기술을 말한다.
1. useBean의 예시
2. useBean을 JSP 코드로 바꾸면?
<jsp:useBean id="member" class="test.MemberBean"/>
위의 액션태그를 코드로 바꾸면 아래와 같다.
MemberBean member = (MemberBean)request.getAttribute("member");
if(member == null){
member = new MemberBean();
request.setAttribute("member", member)
}
3. JSP가 아닌 방법으로 꺼내 쓰는 방법
<jsp:useBean id="인스턴스명" class="클래스이름" scope="범위"/>
<jsp:setProperty name="자바빈" property="프로퍼티이름" value="값" />
<jsp:getProperty name="자바빈" property="프로퍼티이름" />
사용하는 이유와 장점
html 코드는 여러 개발자들이 본다.
request.getParameter로 값을 들고오는 경우 자바 개발자가 아니면 해당 명령어를 모른다는 단점이 있다.
<jsp:useBean>은 태그 형식인 html 문법과 비슷해서 프론트 개발자 입장에선 이해하기 쉽다.
즉, 프론트와 백의 관심사를 분리시킬 수 있다는 장점이 있다.
또 <jsp:useBean>은 application, session, request, page 보관소에 저장된 자바 객체를 꺼내고 저장이 가능하다.
JSTL도 비슷하지 않나?
프론트와 백을 분리 시키기 위한 기술로는 JSTL도 일종의 분리 기술이다.
프론트엔드 입장에선 자바빈을 이용해서 데이터를 가져오고 JSTL로 데이터를 뿌려주면 좀 더 직관적으로 사용할 수 있다. 오로지 자바빈만 사용한다면 아래처럼 써야하기 때문이다.
<jsp:getProperty name="자바빈" property="프로퍼티이름" />
단점
1. JSP든 JSTL이든 자바 파일로 다시 컴파일 하게 되는데, JSP는 실제 자바코드라서 바로 번역하면 되지만 JSTL은 다시 자바 코드로 변경되야하는 것 때문에 메모리 과부하 문제가 존재한다. 또 JSTL에서는 JSP에서 사용하는 자바 문법보다 다양하지 않다
2. HTML 프로그래머에겐 익숙하지만 Java 프로그래머에겐 배우기도 쓰기도 귀찮다.
3. 결과적으로 SI 처럼 모든걸 다 개발해야하는 상황이면 구애받지 않고 JSP를 쓰는게 낫고 대규모이고 디자이너가 1명 이상일 경우 해당 디자이너에게 맡기고 Java bean만 던지는 방식으로 분리 시켜서 만들면 좋다.
'☕ Java' 카테고리의 다른 글
Java 8 Stream 사용법 (0) | 2022.05.10 |
---|---|
Java 배열, List, Map, Set의 선언 방법과 차이 (0) | 2022.05.09 |
[Java vs Node.js] 무엇이 더 좋을까? (0) | 2022.01.23 |
기본 생성자(Default Constructor)가 필요한 이유 (0) | 2021.03.30 |
[JSP] 캐시 방지 & 캐시 삭제 팁 (0) | 2021.03.22 |