JSP
[JSP] 3. 액션 태그
myeongju
2024. 7. 21. 16:26
반응형
액션 태그
- 서버나 클라이언트에게 어떤 행동을 하도록 명령하는 태그
- JSP 페이지에서 페이지와 페이지 사이 제어
- 다른 페이지의 실행 결과 내용을 현재 페이지에 포함
- 자바 빈즈 등의 다양한 기능 제공
- XML 형식
<jsp: … />
사용
종류
include 액션 태그
- 현재 JSP 페이지의 특정 영역에 외부 파일의 내용을 포함하는 태그
- JSP 페이지에 포함할 수 있는 외부 파일 : HTML, JSP, 서블릿 페이지 등
<jsp:include page="파일명" flush="false" />
page 속성 값
- 현재 JSP 페이지 내에 포함할 내용을 가진 외부 파일명
- 외부 파일은 현재 JSP 페이지와 같은 디렉터리에 있으면 파일명만 설정하고, 그렇지 않으면 전체 URL(또는 상대 경로)를 설정해야 함
flush 속성 값
- 설정한 외부 파일로 제어가 이동할 때 현재 JSP 페이지가 지금까지 출력 버퍼에 저장한 결과를 처리(기본 값: false)
- true로 설정하면 외부 파일로 제어가 이동할 때 현재 JSP페이지가 지금까지 출력 버퍼에 저장된 내용을 웹 브라우저에 출력하고 출력 버퍼를 비움
include 태그와의 차이점 ?
include 액션 태그는 먼저 독립적으로 실행 후 실행 결과만 받아온다.
include 태그는 기존 페이지에 복사 붙여넣기 하고 실행한다고 생각하면 된다.
구분 | include 액션 태그 | include 디렉티브 태그 |
---|---|---|
처리 시간 | 요청 시 자원을 포함 | 번역 시 자원을 포함 |
기능 | 별도의 파일로 요청 처리 흐름을 이동 | 현재 페이지에 삽입 |
데이터 전달 방법 | request 기본 내장 객체나 param 액션 태그를 이용하여 파라미터를 전달 | 페이지 내의 변수를 선언한 후 변수에 값을 저장 |
용도 | 화면 레이아웃의 일부분을 모듈화할 때 주로 사용 | 다수의 JSP 웹 페이지에서 공통으로 사용되는 코드나 저작권과 같은 문장을 포함하는 경후에 사용 |
기타 | 동적 페이지 | 정적 페이지 |
서버 부하가 살짝 더 높지만, 근본적인 문제를 발생시키지 않는다.
Param 액션 태그
- 현재 JSP 페이지에서 다른 페이지에 정보를 전달하는 태그
- 단독으로 사용 X. jsp:forward or jsp:include 태그 내부에 사용
- 다른 페이지에 여러 개의 정보를 전송해야할 때는 다중의 param 액션 태그 사용
<jsp:forward page="파일명">
<jsp:param name="매개변수명1" value="매개변수값1" />
</jsp:forward>
useBean 액션 태그
- JSP 페이지에서 자바빈즈를 사용하기 위해 실제 자바 클래스를 선언하고, 초기화하는 태그
- id속성과 scope속성을 바탕으로 자바빈즈의 객체를 검색함
- 객체가 발견되지 않으면 빈 객체를 생성
<jsp:useBean id="자바빈즈 식별이름" class="자바빈즈 이름" scope="범위" />
useBean 액션 태그의 속성
속성 | 설명 |
---|---|
id | 자바빈즈를 식별하기 위한 이름 |
class | 패키지 이름을 포함한 자바빈즈 이름이다. 자바빈즈는 인수가 없는 기존 생성자가 있어야 하며, 추상 클래스를 사용X |
scope | 자바빈즈가 저장되는 영역을 설정한다. page(기본값), request, session, application 중 하나의 값을 사용 |
자바빈즈
- 동적 콘텐츠 개발을 위해 자바 코드를 사용하여 자바 클래스로 로직을 작성하는 방법
- JSP페이지에서 화면을 표현하기 위한 계산식이나 자료의 처리를 담당하는 자바코드를 따로 분리하여 작성하는 것
- JSP페이지가 HTML과 같이 쉽고 간단한 코드만으로 구성
자바빈즈를 작성할 때 규칙
- 자바 클래스는 java.io.Serializable 인터페이스를 구현해야 함
- 인수가 없는 기본 생성자가 있어야 함
- 모든 멤버 변수인 프로퍼티는 private 접근 지정자로 설정해야 함
- 모든 멤버 변수인 프로퍼티는 getter/setter( ) 메소드가 존재해야 함
- Serializable를 사용해야지만, 객체 직렬화가 가능하다.
- 객체 직렬화를 하는 이유 ? 게임이나 작업의 화면을 종료된 상태에서 다시 시작할 수 있도록 할 수 있다.
setProperty 액션 태그
- useBean 액션 태그와 함께 자바빈즈의 setter( ) 메소드에 접근하여 자바빈즈의 멤버 변수인 프로퍼티의 값을 저장하는 태그
- 폼 페이지로 부터 전달되는 요청 파라미터의 값을 직접 저장하거나 자바빈즈의 프로퍼티로 변경하여 값을 저장할 수 있음
- 모든 자바빈즈 프로퍼티 이름과 동일하게 요청 파라미터를 설정할 수 있음
<jsp:setProperty name="자바빈즈 식별이름: property="프로퍼티 이름" " value="값" />
속성 | 설명 |
---|---|
name | useBean 태그에 id 속성 값으로 설정된 자바빈즈를 식별하기 위한 이름 |
property | 자바빈즈의 프로퍼티 이름, 만약 프로퍼티 이름에 '*'를 사용하면 모든 요청 파라미터가 자바빈즈 프로퍼티으 Setter( ) 메소드에 전달됨을 의미 |
value | 변경할 자바빈즈의 프로퍼티 값이다. 만약 프로퍼티 값이 nulld이거나 존재하지 않는 요청 파라미터인 경우에는 SetProperty 액션 태그가 무시된다. |
param | 자바빈즈의 프로퍼티 값을 전달하는 요청 파라미터의 이름, param과 value를 동시에 모두 사용할 수 없으며 하나를 선택하여 사용하는 것은 가능. |
getProperty 액션 태그
- useBean 액션 태그와 함께 자바빈즈의 getter( ) 메소드에 접근하여 자바빈즈의 멤버 변수인 프로퍼티의 값을 가져오는 태그
<jsp:getProperty name="자바빈즈 식별이름" property="프로퍼티 이름" />
속성 | 설명 |
---|---|
name | useBean 태그에서 id 속성 값으로 설정된 자바빈즈를 식별하기 위한 이름 |
property | 자바빈즈의 프로퍼티 이름, 만약 프로퍼티 이름에 '*'를 사용하면 모든 요청 파라미터가 자바빈즈 프로퍼티의 Getter ( ) 메소드에 전달됨을 의미한다. |
반응형