loose
이로운 개발하기
loose
전체 방문자
오늘
어제
  • 전체 (208)
    • ☕ Java (25)
    • 📘 Effective Java (9)
    • 🍃 Spring (49)
    • 📖 ORM (9)
    • ☸️ Kubernetes (13)
    • 🐧 Linux (5)
    • 🐋 Docker (5)
    • 🛠️ CI & CD (7)
    • 🕸️ Web (6)
    • 🔗 Distributed System (3)
    • 📜 Js (10)
    • 📈 Database (11)
    • 🗂️ Etc (36)
    • 🧑 Chitchat (11)
    • 📒 문학 (9)
    • 👜 개인 공부 창고 (0)

공지사항

최근 글

최근 댓글

loose

이로운 개발하기

JSP와 자바빈(JavaBean)
☕ Java

JSP와 자바빈(JavaBean)

2022. 2. 15. 10:43

자바빈

자바빈이란 DTO와 같은 자바 클래스를 이용해서 JSP 코드가 아닌 useBean을 사용하여 가져오는 기술을 말한다.


1. useBean의 예시

우측에 useBean을 사용하여 JSP로 데이터를 뿌려주고 있다.

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
    '☕ Java' 카테고리의 다른 글
    • Java 8 Stream 사용법
    • Java 배열, List, Map, Set의 선언 방법과 차이
    • [Java vs Node.js] 무엇이 더 좋을까?
    • 기본 생성자(Default Constructor)가 필요한 이유
    loose
    loose
    불만하는 사람은 90명, 해결하는 사람은 9명, 리드하는 사람은 1명 음악과 낭만을 좋아합니다.
    hELLO. 티스토리 스킨을 소개합니다.
    제일 위로

    티스토리툴바