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

공지사항

반응형

최근 글

최근 댓글

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만 던지는 방식으로 분리 시켜서 만들면 좋다.

 

 

 

 

 

728x90

'☕ 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. 티스토리 스킨을 소개합니다.
    제일 위로

    티스토리툴바