Today I Learned - 28
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 파일 필수!
- 유용한 JSP 태그의 모음
액션 태그
- 서버/클라이언트에게 어떤 행동을 하도록 명령
- XML형식 사용 -> <jsp: … />
- 반드시 끝나는 태그 ( /> ) 로 마무리
액션 태그 1. forward
<jsp:forward ... />
- JSP 페이지에 자바 코드의 삽입을 최소화 -> 효율적 유지 보수가 목적
- 현재 JSP 페이지에서 다른 페이지로 이동
웹 브라우저 주소는 원래 페이지 그대로!
- forward 액션 태그 만나면,
- 출력 버퍼에 저장되어 있던 내용, 모두 삭제
- 이동하는 페이지로 ‘프로그램의 제어’도 이동
액션 태그 2. include
<jsp:include page="파일명" flush="false" />
- JSP 페이지 특정 영역에 외부 파일의 내용을 포함
like ‘include 디렉티브 태그’
- 외부 파일 실행 후, 원래 JSP 페이지로 제어 반환!!
unlike ‘forward 액션 태그’
- JSP 페이지 특정 영역에 외부 파일의 내용을 포함
- flush 속성(기본값 false)
- true일 경우: 출력 버퍼와 헤더 정보까지 웹 브라우저에 전송
일단 전송되면, 헤더 정보 추가해도 결과 반영 안됨!
- 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’ 참고!
- 1~3번
nice!!!!