일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 객체
- try-catch
- java
- array
- 상속
- 입출력
- Interface
- 예외처리
- 인터페이스
- 내장 객체 영역
- I/O
- ToString
- StringBuffer클래스
- StringBuffer
- 에러
- 제어자
- 커넥션 풀
- 람다식
- for문
- DB
- 배열
- 다형성
- JSP
- 예외
- 객체지향
- 변수
- Connection
- 메서드
- File입출력
- 접근제어자
- Today
- Total
ksouth9
액션 태그(Action Tag) 본문
액션 태그(Action Tag)
- <jsp:include> 태그 : 특정 페이지를 현재 페이지에 포함시킬 때 사용한다.
- <jsp:forward> 태그 : 현재 페이지에 들어온 요청을 다음 페이지로 보낼 때 사용한다.
- <jsp:useBean>,<jsp:setProperty>,<jsp:getProperty> 태그 : 자바빈즈를 생성하거나 값을 설정 및 출력할 때 사용된다. 특히 와일드카드 * 를 사용하면 전송되는 폼값을 한 번에 받을 수 있다.
- <jsp:param> 태그 : 인클루드나 포워드 시 매개변수를 넘길 때 사용한다.
액션 태그는 JSP 표준 태그로, 페이지 사이에서 이동을 제어하거나 자바빈을 생성할 때 주로 사용된다.
<jsp:태그명 /> 형태로 사용하며, 태그처럼 사용하지만 그 뒤에서는 JSP가 수행된다. 즉, JSP 코드와 마찬가지로 웹 애플리케이션 서버(WAS)에서 처리된 후 결과만 출력되어 웹 브라우저에서 소스 보기를 해도 액션 태그는 보이지 않는다.
액션 태그 특징
- XML 문법을 따른다.
- 반드시 종료 태그를 사용해야 한다.
- 액션 태그 사이에 주석을 사용하면 에러가 발생한다.
- 액션 태그에 속성값을 부여할 때는 표현식 <%= %>을 사용할 수 있다.
사용방법
<jsp:태그명 />
- <jsp:include> : 외부 파일을 현재 파일에 포함시킨다.
- <jsp:forward> : 다른 페이지로 요청을 넘긴다.
- <jsp:useBean>,<jsp:setProperty>,<jsp:getProperty> : 자바빈즈를 생성하고 값을 설정/추출한다.
- <jsp:param> : 다른 페이지로 매개변수를 전달한다. <jsp:include>,<jsp:forward> 액션 태그와 함께 사용한다.
<jsp:include>
<jsp:include> 액션 태그는 외부 JSP 파일을 현재 JSP 파일로 포함시키는 기능
include 지시어와 <jsp:include> 액션 태그 차이점
지시어 | 액션태그 | |
형식 | <%@ include file = "포함할 파일의 경로" %> | <jsp:include page = "포함할 파일의 경로" /> |
표현식 | 표현식 사용 불가 | 표현식 사용 가능 |
포함 방식 | 페이지 자체를 현재 페이지에 포함시킨 후 컴파일 진행 | 실행의 흐름을 포함시킬 페이지로 이동시킨 후 실행한 결과를 현재 페이지에 포함시킴 |
변수 | 포함시킨 파일에서 생성한 변수 사용 가능 | 포함시킨 파일에서 생성한 변수 사용 불가 |
page 영역 | 공유됨 | 공유되지 않음 |
request 영역 | 공유됨 | 공유됨 |
include 지시어 동작 메커니즘
- 지시어를 통한 인클루드는 페이지를 원본 그대로 현재 페이지에 먼저 포함시킨 후 컴파일한다.
- JSP 코드만 서로 다른 페이지로 모듈화(부붐화)하는 것이다. 그러므로 동일한 페이지로 인식한다.
<jsp:include> 액션 태그 동작 메커니즘
- 액션 태그를 사용하면 포함시킬 페이지로 요청의 흐름이 이동되어 컴파일을 진행한다.
- 컴파일된 결과물을 현재 페이지에 삽입한다.
- 웹 서버에서 컴파일된 JSP 코드는 모두 단순한 HTML 형태로 변환된다. 그러므로 포함시킬 페이지에서 생성한 변수는 현재 페이지에서 사용할 수 없다.
- 다른 페이지로 인식하므로 page 영역 또한 공유되지 않는다.
사용방법
<jsp:include page="이동할 JSP 페이지" />
표현식을 통해서 지정할 수도 있다.
<jsp:include page="include.jsp" />
<%
String url = "include.jsp"
%>
<jsp:include page="<%= url %>" />
<jsp:forward>
<jsp:forward>는 현재 페이지에 들어온 요청을 다음 페이지로 보내는 기능
- 포워드는 다음 페이지로 요청을 전달하는 것이 목적이다.
- 이동된 페이지와 request 영역을 공유한다.
- URL이 변경되지 않는다.
- 포워드된 페이지는 이전 페이지와는 서로 다른 페이지이므로, 페이지별로 생성되는 page 영역은 공유되지 않는다.
- page 영역은 페이지별로 고유하게 만들어진다.
- request 영역은 하나의 요청을 공유하는 모든 페이지에 공유된다.
사용방법
<jsp:forward page="이동할 JSP 페이지" />
include 액션 태그처럼 페이지를 그대로 지정하거나 표현식을 통해 지정할 수 있다.
<jsp:forward page="forward.jsp" />
<%
String url = "forward.jsp"
%>
<jsp:forward page="<%= url %>" />
<jsp:useBean>,<jsp:setProperty>,<jsp:getProperty>
<jsp:useBean>
<jsp:useBean> 액션 태그는 자바빈즈(JavaBeans)를 생성하거나 설정할 때 사용한다.
※자바빈즈 : 데이터를 저장하기 위한 멤버 변수(속성)와 getter/setter 메서드로만 이루어진 클래스
사용방법
<jsp:useBean id="자바빈즈 이름" class="사용할 패키지와 클래스명" scope="저장될 영역" />
- id : 자바빈즈 객체의 이름을 설정한다. 같은 id로 이미 생성된 객체가 있다면 해당 객체를 사용하고, 없다면 새로 생성한다.
- class : 사용하려는 자바빈즈 객체의 실제 패키지명과 클래스명을 지정합니다. 자바에서는 다른 패키지에 있는 클래스를 사용하려면 먼저 import를 해야 하는데, 이와 같다.
- scope : 자바빈즈가 저장될 내장 객체 영역을 지정합니다. 생략한다면 기본값인 page 영역이 지정된다. 액션 태그로 생성한 자바빈즈는 4가지 영역(page, request, session, application) 중 한 곳에 저장된다.
<jsp:setProperty>
<jsp:useBean> 액션 태그로 생성한 자바빈즈 객체의 속성값을 수정할 때 사용한다. setter 메소드를 호출하는 표준 액션 태그
사용방법
<jsp:setProperty name="자바빈즈 이름" property="속성명(멤버 변수)" value="설정할 값" />
- name : <jsp:useBean>의 id 속성에 지정한 자바빈즈의 이름을 지정한다. 즉, 인스턴스 변수를 지정하는 것과 동일하다.
- property : 자바빈즈의 멤버변수명을 지정한다. 이름을 명시하는 대신 property="*" 라고 쓰면 form의 하위 요소와 일치하는 자바빈즈의 모든 속성에 사용자가 전송한 값이 설정된다. 이때는 value 속성을 생략할 수 있다.
- value : 멤버변수에 설정할 값을 지정한다.
<jsp:setProperty property="자바빈즈 이름" name="속성명(멤버 변수)" param="파라미터이름" />
- param : 질의 문자열에서 param 속성에 할당된 값과 같은 name의 값으로 자바빈의 속성값을 설정한다.
<jsp:getProperty>
<jsp:useBean> 액션 태그로 객체를 생성한 후 자바빈즈의 속성값을 추출할 때 사용한다. getter 메소드를 호출하여 필요한 기능을 수행하고 그 결과를 주어진 위치에 출력할 때 사용하는 태그
사용방법
<jsp:getProperty nam="자바빈즈 이름" property="속성명(멤버 변수)" />
- name : <jsp:useBean> 태그에서 정의해 놓은 id 속성값과 동일하게 지정한다. 자바빈을 참조한다.
- property : 값을 추출하려는 자바빈즈 객체의 멤버변수 이름을 지정한다.
<jsp:param>
<jsp:param>은 <jsp:include>나 <jsp:forward>를 사용할 때 다른 페이지에 값을 전달해주는 액션 태그이다.
전달할 수 있는 값은 String뿐이다. 다른 타입의 객체를 전달할 때는 내장 객체의 영역을 이용해야 한다.
사용방법
<jsp:include page="이동시킬 JSP 페이지">
<jsp:param name="파라미터" value="값" />
</jsp:include>
<jsp:forward page="이동시킬 JSP 페이지">
<jsp:param name="파라미터" value="값" />
</jsp:forward>
<jsp:forward>에서는 request 객체를 이용하여 값을 얻을 수 있다.
전달 방식과 상관없이 매개변수들이 모두 request 영역에 생성되어 항상 request.getParameter()메서드로 값을 가져온다. request 영역이란 하나의 요청을 처리하는 과정에서 거쳐가는 모든 페이지에서 공유하는 공간이다. 페이지 사이의 매개변수는 모두 request 영역에 생성된다.
'Web > JSP' 카테고리의 다른 글
Redirect VS Forward 차이점 (0) | 2022.06.12 |
---|---|
표현 언어(EL : Expression Language) (0) | 2022.05.16 |
세션(Session) (0) | 2022.05.09 |
쿠키(Cookie) (0) | 2022.05.08 |
내장 객체의 영역 - page, request, session, application (0) | 2022.05.07 |