정리노트
[JSP] 액션 태그
망고고래
2023. 11. 30. 16:06
4장. 액션 태그: 상품 목록 표시하기
4-1. 액션 태그의 개요
서버나 클라이언트에 어떤 행동을 하도록 명령하는 태그
기능
1)페이지와 페이지 사이 제어(이동)
2)다른 페이지의 실행 결과 내용을 현재 페이지에 포함(include)
3)자바 빈즈 등의 기능 제공
4-2. forward 액션 태그
현재 JSP 페이지에서 다른 페이지로 이동하는 태그
형식
<jsp:forward page = "____.jsp" />
JSP 컨테이너는 현재 JSP 페이지에서 forward 액션 태그를 만나면 그 전까지 출력 버퍼에 저장되어 있던 내용을 모두 삭제
→이전까지 생성된 HTML 손실
①flush=true인 경우
버퍼에 저장되어있는 내용을 출력하고 이동하지만 이동한 곳에 있는 내용을 출력해서 덮어씀
②flush=false인 경우
버퍼에 저장되어있는 내용이 사라지고 이동한 곳의 내용을 출력함
∴결과는 같다.
4-3. include 액션 태그의 기능과 사용법
형식
<jsp:include page = "파일명" flush="false"/>
flush는 false 권장
1) include 디렉티브 태그와의 공통점
특정 영역에 외부 파일의 내용을 포함함(실행 결과는 같음)
2) include 디렉티브 태그와의 차이점
구분 | include 액션 태그 | include 디렉티브 태그 |
처리 시간 | 요청 시 자원(파라미터) 포함 | 번역 시 자원 포함 |
기능 | 다른 페이지로 가서 코드를 가져옴 | 현재 페이지에 코드를 받아옴 |
데이터 전달 방법 | request 기본 내장 객체나 param 액션 태그를 이용해서 파라미터 전달 | 페이지 내의 변수를 선언하고 변수에 값 저장 (파라미터 x) |
용도 | 화면 레이아웃의 일부분을 모듈화할 때 주로 사용 | 다수의 JSP 웹 페이지에서 공통으로 사용되는 코드나 저작권과 같은 문장을 포함하는 경우 |
기타 | 동적 페이지에 사용 | 정적 페이지에 사용 |
4-4. param 액션 태그
현재 페이지에서 다른 페이지에 정보(파라미터)를 전달하는 태그
단독으로 사용 x, <jsp:forward>나 <jsp:include> 태그 내부에 사용
<jsp:forward page="파일명">
<jsp:param name="매개변수명1" value="매개변수값1" />
<jsp:param name="매개변수명2" value="매개변수값2" />
</jsp:forward>
파라미터로 java 코드를 넣을 수 있다.
4-5. 자바빈즈 액션 태그
자바 코드를 따로 분리해서 작성
- useBean(객체 생성)
- setProperty(setter)
- getProperty(getter)
형식
<jsp:useBean id="자바빈즈 식별 이름" class="자바빈즈 이름" scope="범위"/>
id: 참조변수
class: 객체의 위치(패키지 이름을 포함한 클래스명)
scope: 자바빈즈가 삭제되는 시점 설정
- page(기본값): 현재 페이지를 벗어나면 삭제
- request: request.getParameter()를 사용한 페이지까지만 request 객체 사용 가능
- session: 세션을 끝낼 때까지 유지됨
- application: 서버가 끝날 때까지 유지됨
<jsp:useBean id="member" class="com.dto.MemberBean" scope="page"/>
아래 코드와 같음
MemberBean member = (MemberBean) request.getAttribute("member");
if(member == null){
member = new MemberBean();
request.setAttribute("member", member);
}