액션 태그의 개요
액션 태그
- 서버나 클라이언트에게 어떤 행동을 하도록 명령하는 태그
- JSP 페이지에서 페이지와 페이지 사이 제어
- 다른 페이지의 실행 결과 내용을 현재 페이지에 포함
- 자바 빈즈(JavaBeans) 등 동적 페이지 관리 기능 제공
- XML 형식의 태그로, 기술한 동작 기능을 수행하는 방식
- <jsp: …. /> 형식으로 사용
액션 태그의 종류
forward 액션 태그의 기능과 사용법
forward 액션 태그
- 현재 JSP 페이지에서 다른 페이지로 이동하는 태그
- JSP 컨테이너는 현재 JSP 페이지에서 forward 액션 태그를 만나면
- 그 전까지 출력 버퍼에 저장되어 있던 내용을 모두 삭제하고
- forward 액션 태그에 설정된 페이지로 프로그램의 제어가 이동
<jsp:forward page=”파일명” />
or
<jsp:forward page=”파일명> </jsp:forward> ← 닫히는 태그
- 다른 jsp 파일로 전환 시 param 태그를 이용해 값을 전달 가능
- 웹 브라우저의 주소창에는 최초 요청한 페이지만 표시됨
- 처리 페이지 정보를 숨기거나 특정 기능 수행 후 다른 페이지로 이동해야 하는 경우 유용
- 보안성 향상에 유용
- 예를 들어 first.jsp에서 forward 태그로 second.jsp 로 이동하게 되어도 주소창에는 여전히 first.jsp 임
forware 액션 태그의 페이지 흐름 처리 과정
- HTTP 요청
- first.jsp 코드가 실행되고 forward 태그를 만나 second.jsp로 넘어간다
- second.jsp 코드가 실행된다
- HTTP 응답
2번에서 first.jsp 코드가 실행되어 지금까지 저장된 출력 버퍼의 내용이 forward 액션 태그를 만나면 출력 버퍼(내용값)을 삭제하고 프로그램의 제어가 second.jsp로 이동하게 됨
(forwarding)
- forward 액션 태그가 선언된 지점 이전까지의 생성된 html 코드가 손실된다.
- 단, 현재 페이지가 이미 전달 버퍼로 채워진 경우에는 전달이 중단될 때 까지 해당 내용을 응답으로 보낸다. 잘못된 페이지가 전송될 수 있으니 큰 출력 생성하는 페이지에서는 사용을 주의 해야한다.
include 액션 태그의 기능과 사용법
include 액션 태그
<jsp:include page=”파일명” flush=”false” />
- page 속성 값
- 현재 JSP 페이지 내에 포함할 내용을 가진 외부 파일명
- 외부 파일은 현재 JSP 페이지와 같은 디렉터리에 있으면 파일명만 설정하고, 그렇지 않으면 전체 URL을 설정 해야한다.
- flush 속성 값
- 기본 값은 false
- true로 설정하면 외부 파일로 제어가 이동할 때 현재 JSP 페이지가 지금까지 출력 버퍼에 저장된 내용을 웹 브라우저에 출력하고 출력 버퍼를 비운다.
- false로 지정하는 것이 좋음
- forward 액션태그와 차이점
- 외부 파일 실행 후 제어를 반환한다.
- 외부 파일 실행 내용이 현재 jsp 페이지 출력 버퍼에 추가 저장되어 출력된다.
- forward는 제어가 완전 넘어가 버리는데 include는 해당 파일을 실행하고 결과값을 가지고 제어권도 다시 돌아온다
include 액션 태그의 처리 과정
- HTTP 요청
- first.jsp 코드 실행 , first.jsp 출력 내용을 출력 버퍼에 저장
- first.jsp 코드 실행 중 include 코드를 만나면 second.jsp로 제어권이 넘어감
- second.jsp 코드 실행하고 second.jsp 출력 내용을 출력 버퍼에 저장
- 결과값을 가지고 first.jsp로 제어권이 넘어감
- 나머지 first.jsp 코드 실행
- HTTP 응답
페이지의 손실이 없다
호출한 외부 파일 변경되어도 현 jsp 문서가 다시 컴파일 되지 않아도된다.
태그 정리
- 스크립트 태그 <% %>
- 표현 <%=
- 선언문 <%!
- 스크립트릿 <%
- 주석문 <%—
- 지시문 <%@ page
액션 태그
- <jsp:
param 액션 태그의 기능과 사용법
param 액션 태그
param = 매개 변수
- 현재 JSP 페이지에서 다른 페이지에 정보를 전달하는 태그
- 이 태그는 단독으로 사용되지 못한다 jsp:forward , jsp:include 태그의 내부에서 사용됨
- 다른 페이지에 여러 개의 정보를 전송해야 할 때는 다중의 param 액션 태그 사용
- 매개변수를 전달하는 역할
- forward 액션 태그와 include 액션 태그와 함께 사용
- forwarding 될 페이지한테 갈 때 값을 들고 간다
<jsp:forward page="파일명">
<jsp:param name="매개변수명1" value="매개변수값1 "/>
[<jsp:param name="매개변수명2" value="매개변수값2 "/> ... ]
</jsp:forward>
예 :
first.jsp
<jsp:include page="second.jsp">
<jsp:param name="date" value="<%=new java.util.Date()%>" />
</jsp:include>
second.jsp
Today is : <%=request.getParameter("date")%>
- request.getParameter 는 JSP 내장 함수이다.
- getParameter안에 쌍 따옴표 안에 파라미터 이름을 적어주어야 함
다중 param
<jsp:forward page="param02_second.jsp">
<jsp:param name="id" value="admin" />
<jsp:param name="name" value="관리자" />
</jsp:forward>
<p> 아이디 : <%=request.getParameter("id")%></p>
<p> 이름 : <%=request.getParameter("name") %></p>
- param으로 값을 넘겨주면 값이 문자열로 전달되기때문에 (정수,실수) 등 형변환을 해줘야한다.
자바빈즈 액션 태그의 기능과 사용법
자바빈즈
- JSP 웹 페이즈는 HTML코드와 JavaScript 태그 등을 기술하여 자칫 복잡하게 작성되어 유지/보수가 어려운 상황이 초래된다.
- JSP 페이지에서 Java 소스 코드만 따로 분리하여 작성하여 JSP 웹 페이지가 복잡해지는 것을 방지할 수 있다.
- JSP 페이지가 HTML과 같이 쉽고 간단한 코드만으로 구성
<jsp:useBean id=”변수” class=”클래스이름” />
예 : java.util.Date를 nowTime의 참조변수에 대입하고 싶으면
→ <jsp:useBean id=”nowTime” class=”java.util.Date”/>
<%= nowTime.toLocaleString() %>
useBean 액션 태그
- JSP 페이지에서 자바빈즈를 사용하기 위해 실제 자바 클래스를 선언하고 초기화하는 태그
<jsp:useBean id=”자바빈즈 식별이름” class=”자바빈즈 이름” scope=”범위”/>
- class 속성에 지정한 빈즈 클래스를 id 속성에 지정한 이름으로 사용할 수 있도록 해준다.
액션 태그의 개요
액션 태그
- 서버나 클라이언트에게 어떤 행동을 하도록 명령하는 태그
- JSP 페이지에서 페이지와 페이지 사이 제어
- 다른 페이지의 실행 결과 내용을 현재 페이지에 포함
- 자바 빈즈(JavaBeans) 등 동적 페이지 관리 기능 제공
- XML 형식의 태그로, 기술한 동작 기능을 수행하는 방식
- <jsp: …. /> 형식으로 사용
액션 태그의 종류
forward 액션 태그의 기능과 사용법
forward 액션 태그
- 현재 JSP 페이지에서 다른 페이지로 이동하는 태그
- JSP 컨테이너는 현재 JSP 페이지에서 forward 액션 태그를 만나면
- 그 전까지 출력 버퍼에 저장되어 있던 내용을 모두 삭제하고
- forward 액션 태그에 설정된 페이지로 프로그램의 제어가 이동
<jsp:forward page=”파일명” />
or
<jsp:forward page=”파일명> </jsp:forward> ← 닫히는 태그
- 다른 jsp 파일로 전환 시 param 태그를 이용해 값을 전달 가능
- 웹 브라우저의 주소창에는 최초 요청한 페이지만 표시됨
- 처리 페이지 정보를 숨기거나 특정 기능 수행 후 다른 페이지로 이동해야 하는 경우 유용
- 보안성 향상에 유용
- 예를 들어 first.jsp에서 forward 태그로 second.jsp 로 이동하게 되어도 주소창에는 여전히 first.jsp 임
forware 액션 태그의 페이지 흐름 처리 과정
- HTTP 요청
- first.jsp 코드가 실행되고 forward 태그를 만나 second.jsp로 넘어간다
- second.jsp 코드가 실행된다
- HTTP 응답
2번에서 first.jsp 코드가 실행되어 지금까지 저장된 출력 버퍼의 내용이 forward 액션 태그를 만나면 출력 버퍼(내용값)을 삭제하고 프로그램의 제어가 second.jsp로 이동하게 됨
(forwarding)
- forward 액션 태그가 선언된 지점 이전까지의 생성된 html 코드가 손실된다.
- 단, 현재 페이지가 이미 전달 버퍼로 채워진 경우에는 전달이 중단될 때 까지 해당 내용을 응답으로 보낸다. 잘못된 페이지가 전송될 수 있으니 큰 출력 생성하는 페이지에서는 사용을 주의 해야한다.
include 액션 태그의 기능과 사용법
include 액션 태그
<jsp:include page=”파일명” flush=”false” />
- page 속성 값
- 현재 JSP 페이지 내에 포함할 내용을 가진 외부 파일명
- 외부 파일은 현재 JSP 페이지와 같은 디렉터리에 있으면 파일명만 설정하고, 그렇지 않으면 전체 URL을 설정 해야한다.
- flush 속성 값
- 기본 값은 false
- true로 설정하면 외부 파일로 제어가 이동할 때 현재 JSP 페이지가 지금까지 출력 버퍼에 저장된 내용을 웹 브라우저에 출력하고 출력 버퍼를 비운다.
- false로 지정하는 것이 좋음
- forward 액션태그와 차이점
- 외부 파일 실행 후 제어를 반환한다.
- 외부 파일 실행 내용이 현재 jsp 페이지 출력 버퍼에 추가 저장되어 출력된다.
- forward는 제어가 완전 넘어가 버리는데 include는 해당 파일을 실행하고 결과값을 가지고 제어권도 다시 돌아온다
include 액션 태그의 처리 과정
- HTTP 요청
- first.jsp 코드 실행 , first.jsp 출력 내용을 출력 버퍼에 저장
- first.jsp 코드 실행 중 include 코드를 만나면 second.jsp로 제어권이 넘어감
- second.jsp 코드 실행하고 second.jsp 출력 내용을 출력 버퍼에 저장
- 결과값을 가지고 first.jsp로 제어권이 넘어감
- 나머지 first.jsp 코드 실행
- HTTP 응답
페이지의 손실이 없다
호출한 외부 파일 변경되어도 현 jsp 문서가 다시 컴파일 되지 않아도된다.
태그 정리
- 스크립트 태그 <% %>
- 표현 <%=
- 선언문 <%!
- 스크립트릿 <%
- 주석문 <%—
- 지시문 <%@ page
액션 태그
- <jsp:
param 액션 태그의 기능과 사용법
param 액션 태그
param = 매개 변수
- 현재 JSP 페이지에서 다른 페이지에 정보를 전달하는 태그
- 이 태그는 단독으로 사용되지 못한다 jsp:forward , jsp:include 태그의 내부에서 사용됨
- 다른 페이지에 여러 개의 정보를 전송해야 할 때는 다중의 param 액션 태그 사용
- 매개변수를 전달하는 역할
- forward 액션 태그와 include 액션 태그와 함께 사용
- forwarding 될 페이지한테 갈 때 값을 들고 간다
<jsp:forward page="파일명">
<jsp:param name="매개변수명1" value="매개변수값1 "/>
[<jsp:param name="매개변수명2" value="매개변수값2 "/> ... ]
</jsp:forward>
예 :
first.jsp
<jsp:include page="second.jsp">
<jsp:param name="date" value="<%=new java.util.Date()%>" />
</jsp:include>
second.jsp
Today is : <%=request.getParameter("date")%>
- request.getParameter 는 JSP 내장 함수이다.
- getParameter안에 쌍 따옴표 안에 파라미터 이름을 적어주어야 함
다중 param
<jsp:forward page="param02_second.jsp">
<jsp:param name="id" value="admin" />
<jsp:param name="name" value="관리자" />
</jsp:forward>
<p> 아이디 : <%=request.getParameter("id")%></p>
<p> 이름 : <%=request.getParameter("name") %></p>
- param으로 값을 넘겨주면 값이 문자열로 전달되기때문에 (정수,실수) 등 형변환을 해줘야한다.
자바빈즈 액션 태그의 기능과 사용법
자바빈즈
- JSP 웹 페이즈는 HTML코드와 JavaScript 태그 등을 기술하여 자칫 복잡하게 작성되어 유지/보수가 어려운 상황이 초래된다.
- JSP 페이지에서 Java 소스 코드만 따로 분리하여 작성하여 JSP 웹 페이지가 복잡해지는 것을 방지할 수 있다.
- JSP 페이지가 HTML과 같이 쉽고 간단한 코드만으로 구성
<jsp:useBean id=”변수” class=”클래스이름” />
예 : java.util.Date를 nowTime의 참조변수에 대입하고 싶으면
→ <jsp:useBean id=”nowTime” class=”java.util.Date”/>
<%= nowTime.toLocaleString() %>
useBean 액션 태그
- JSP 페이지에서 자바빈즈를 사용하기 위해 실제 자바 클래스를 선언하고 초기화하는 태그
<jsp:useBean id=”자바빈즈 식별이름” class=”자바빈즈 이름” scope=”범위”/>
- class 속성에 지정한 빈즈 클래스를 id 속성에 지정한 이름으로 사용할 수 있도록 해준다.