2 minute read

JSP - 2

  • 디렉티브 태그
    • page
    • include
    • taglib
  • 액션 태그
    • forward
    • include
    • param
    • 자바빈즈



디렉티브 태그

  • JSP 페이지를 어떻게 처리할 지 설정하는 태그
    • 서블릿 프로그램 -(컴파일)-> 서블릿 클래스 과정에서, JSP 페이지 관련 정보를 JSP 컨테이너에 지시
    • 개별 HTML 응답에 특별한 영향X



디렉티브 태그 1. page

  • <%@ page 속성1="값1" [속성2="값2"]... %>
    • JSP 페이지에 대한 정보 설정
    • JSP 페이지 최상단에 선언 권장

      ex. 콘텐츠 유형, 자바 클래스, 오류 페이지 설정 등

  • page 태그 속성
    • language: 프로그래밍 언어 설정
    • contentType: 콘텐츠 유형 설정
    • pageEncoding: 문자 인코딩 설정
    • import: 사용할 자바 클래스 설정
    • session: HTTP 세션 사용 여부 설정
    • 외 buffer, autoFlush, isThreadSafe, info, errorPage 등



디렉티브 태그 2. include

  • <%@ include file = "파일명" %>
    • JSP 페이지 특정 영역에 외부 파일의 내용을 포함
  • 사용
    • 같은 디렉토리에 있을 경우 => ‘파일명’만 사용
    • 같은 디렉토리에 없을 경우 => 전체 URL 필요
  • 웹 애플리케이션의 중복/공통 코드를 모듈화할 수 있으므로 매우 유용!



디렉티브 태그 3. taglib

  • <%@ taglib uri = "경로" prefix = "태그 식별자" %>
    • JSP 페이지에 표현 언어, JSTL, 사용자 정의 태그 등 라이브러리를 설정
  • JSTL: JSP Standard Tag Library
    • 유용한 JSP 태그의 모음

      ex. 반복/조건문, XML 문서조작, SQL 조작 수행 등

    • WEB-INF/lib 위치에 jstl.jar 파일 필수!



액션 태그

  • 서버/클라이언트에게 어떤 행동을 하도록 명령
    • XML형식 사용 -> <jsp: … />
    • 반드시 끝나는 태그 ( /> ) 로 마무리



액션 태그 1. forward

  • <jsp:forward ... />
    • JSP 페이지에 자바 코드의 삽입을 최소화 -> 효율적 유지 보수가 목적
    • 현재 JSP 페이지에서 다른 페이지로 이동

      웹 브라우저 주소는 원래 페이지 그대로!

  • forward 액션 태그 만나면,
    • 출력 버퍼에 저장되어 있던 내용, 모두 삭제
    • 이동하는 페이지로 ‘프로그램의 제어’도 이동



액션 태그 2. include

  • <jsp:include page="파일명" flush="false" />
    • JSP 페이지 특정 영역에 외부 파일의 내용을 포함

      like ‘include 디렉티브 태그’

    • 외부 파일 실행 후, 원래 JSP 페이지로 제어 반환!!

      unlike ‘forward 액션 태그’

  • flush 속성(기본값 false)
    • true일 경우: 출력 버퍼와 헤더 정보까지 웹 브라우저에 전송

      일단 전송되면, 헤더 정보 추가해도 결과 반영 안됨!

  • include 액션 vs include 디렉티브
구분 include 액션 태그 include 디렉티브 태그
처리시간 요청 시 자원을 포함 번역 시 자원을 포함
기능 별도의 파일로 요청 처리 흐름을 이동 현재 페이지에 삽입
데이터 전달방법 request 기본 내장 객체나 param 액션 태그를 이용, 파라미터 전달 페이지 내의 변수 선언 후, 변수에 값을 저장
용도 화면 레이아웃의 일부분을 모듈화할 때 다수의 JSP 페이지에서 공통으로 사용되는 코드를 포함하는 경우
기타 동적 페이지에 사용 정적 페이지에 사용



액션 태그 3. param

  • <jsp:forward>, <jsp:include> 내부에 사용! (단독 사용 불가)
    • <jsp:param name="매개변수명1" value:"매개변수값1" />
    • [<jsp:param name="매개변수명2" value:"매개변수값2" />...]
  • 매개변수 값 등.. 다른 페이지에 복수의 정보를 전달



액션 태그 4. 자바빈즈

  • 동적 콘텐츠 개발을 위해 자바 코드를 사용, 자바 클래스로 로직을 작성하는 방법
    • 즉 계산식, 자료 처리 등을 담당하는 자바 코드를 따로 분리!
  • 자바빈즈 작성 규칙
    • 자바 클래스는 java.io.Serializable 인터페이스 구현
    • 인수가 없는 기본 생성자 필수
    • 프로퍼티(모든 멤버 변수)의 접근 지정자는 private
    • 프로퍼티에 Getter/Setter() 메서드 반드시 존재
  • 작성 후
    • useBean, setProperty, getProperty 등 자바빈즈 액션태그 사용
    • 폼 페이지 입력 데이터/HTML 페이지에서 오는 데이터를 자바빈즈 객체로 저장
  • 자바빈즈 - useBean 액션태그
    • 자바빈즈 사용!
      <jsp:useBean id="자바빈즈 식별명" class="자바빈즈명" scope="범위" />
  • 자바빈즈 - setProperty 액션태그
    • 프로퍼티의 값 저장하기!
      <jsp:setProperty name="자바빈즈 식별명" property="변수명" value="값" />
  • 자바빈즈 - getProperty 액션태그
    • 프로퍼티의 값 가져오기!
      <jsp:getProperty name="자바빈즈 식별명" property="변수명" />






과제

  • 3, 4단원 연습문제 / ~6/10(금)까지

  • 이형록_220518_JSP과제

  • 내용

    • 1~3번
      • 교재 읽고 답 찾기
      • 메모장에 타이핑
    • 4~6번
      • 교재 읽고 실습
      • 기본 소스 임포트 해서 확인
    • 7번
      • Book Market Mall 만들기 - 정답 소스 없음 (구글에 검색!!)
      • 수업용 예, ‘Web Market Mall’ 참고!






nice!!!!

Updated: