JSP 수업 #04 JSP 응용(1)

sookyoung.k·2022년 12월 20일
0
post-thumbnail

😎 액션태그 (표준 액션)

jsp에서 객체 생성과 공유, 페이지 이동과 전달, 태그 파일 작성 등 필요한 기능을 제공하는 일종의 커스텀 태그!

  • 페이지 내에서 어떤 동작(action)을 하도록 지시하는 태그를 말한다!

대표적인 액션태그

<jsp:forward> request와 response 객체를 포함하여 다른 페이지로 전환
<jsp:include> 다른 페이지의 실행 결과를 포함(include)
<jsp:useBean> 자바 빈즈 객체를 생성하거나 불러오기
<jsp:setProperty> 자바 빈즈 객체의 속성(멤버 변수)에 값(property)을 할당(set)
<jsp:getProperty> 자바 빈즈 객체의 속성값을 출력(get)
<jsp:param> include, foward 액션 사용 시 파라미터 값을 수정하거나 추가 

🥔 자바 빈 (JavaBean)

JSP에서 객체를 가져오기 위한 기법

자바의 재활용 가능한 컴포넌트 모델을 말한다.
DO(Data Object)라고도 말한다.

DTO(Data Transfer Object)라고도 한다고 한다.
일반적으로 자바로 작성된 컴포넌트, 클래스를 말한다.

POJO(Plain Object Java Object)구조로 구성되어 있다.
:특정 기술이나 프레임워크에 종속하지 않고 기본 생성자와 멤버 변수에 대한 getter/setter 메소드를 제공하는 자바 클래스이다.

말이 어렵지 우리가 일반적으로 자바 클래스를 작성했던 것들이 포조 구조이다. 필드 선언하고 getter/setter 메소드를 선언해준 것이 바로... 포조 구조...

DB와 연동되는 클래스를 엔티티 클래스(DO)라고 하는데 기본적으로 테이블 컬럼에 해당하는 private 멤버 변수와 getter/setter 메소드로 구성되는 방식이 바로 포조 구조이다.

🥜 useBean

JSP에서 자바 빈 객체를 생성하거나 참조하기 위한 액션

(액션태그에서 잠시 언급했었습니다)

만일 JSP를 단순히 뷰 역할로만 사용한다면 사용할 일 X

기본적인 동작 방식

  1. useBean을 이용하여 만든 객체의 범위는 지정하는 속성인 scope에 주어진 id의 객체가 있는지 확인
  2. 객체가 없다면 새로 객체를 생성하고 해당 scope에 저장
<jsp:useBean id="instanceName" scope="page|request|session|application" 
class="packageName.className" type="packageName.className">
</jsp:useBean>
  • id: 자바빈을 특정 scope에 저장하거나 가져올 때 사용하는 이름
  • scope: 해당 클래스 타입의 객체를 저장하거나 가지고 오는 범위 (내장 객체의 일부)
  • class: 생성하거나 참조하려는 객체의 클래스명은 반드시 패키지명까지 명시해야 한다 (추상클래스/인터페이스 사용 불가)
  • type: 특정 타입의 클래스를 명시할 때 사용 (추상클래스나 일반클래스가 될 수 있으며 class의 속성 클래스에서 상속 혹은 구현이 이뤄진다)
  • beanName: type과 beanName 사용을 통해 class 속성을 대체

😎 include 액션

다른 jsp 파일을 현재 페이지에 포함하는 기능!

include 지시어와 include 액션의 차이점을 알아야 한다.

include 지시어의 경우, 파일 구조를 모두 포함하여 하나의 파일로 컴파일한 다음에 처리한다. 때문에 수정 사항이 있을 때 파일 전체를 컴파일해야 해서 낭비가 발생함.

include 액션은 include로 된 파일을 각각 호출하여 처리된 결과만 보여준다. 자주 변경이 되어도 해당 파일만 컴파일 하면 된다!

🐱‍🏍 forward 액션

클라이언트의 요청을 다른 페이지로 전환하는 액션! (페이지 이동)

  • response.sendRedirect()와 기능 유사하다. (새로운 페이지로 이동)
    하지만 리디렉션은 서버가 클라이언트에 새로운 페이지로 다시 접속하도록 응답을 보내고, 응답을 받은 클라이언트가 다시 새로운 페이지로 접속하는 방식이다.
    forward 액션은 서버에서 내부적으로 새로운 페이지로 이동하고 그 페이지의 내용을 클라이언트에서 응답으로 전달한다는 차이가 있다.
  • 단순한 페이지의 이동은 리디렉션을 사용한다. 하지만 속성값을 저장한 후 이를 유지하면서 페이지를 이동하기 위해서는 forward를 사용한다.
profile
영차영차 😎

0개의 댓글