1. 액션 태그
▷ 서버나 클라이언트에게 어떤 행동을 하도록 명령하는 태그
▷ JSP 페이지에서 페이지와 페이지 사이 제어
▷ 다른 페이지의 실행 결과 내용을 현재 페이지에 포함
▷ 자바 빈즈(JavaBeans) 등의 다양한 기능 제공
▷ XML 형식 <jsp:... /> 사용
◎ 액션 태그의 종류
2. forward 액션 태그
▷ 현재 JSP 페이지에서 다른 페이지로 이동하는 태그
▷ JSP 컨테이너는 현재 JSP 페이지에서 forward 액션 태그를 만나면
▶ 그 전까지 출력 버퍼에 저장되어 있던 내용을 모두 삭제하고 forward로 설정된 페이지로 프로그램의 제어가 이동
▷ page 속성 값
▶ 현재 JSP 페이지에서 이동할 페이지의 외부 파일명
▶ 외부 파일은 현재 JSP 페이지와 같은 디렉터리에 있으면 파일명만 설정하고,
그렇지 않으면 전체 URL(또는 상대 경로)을 설정해야 함.
◎ forward 액션 태그 사용 예시 1
1. first.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Action Tag</title> </head> <body> <h3>이 파일은 first.jsp 입니다.</h3> <jsp:forward page = "second.jsp" /> <p>===first.jsp의 페이지===== </body> </html> <!-- 출력 : 이 파일은 second.jsp 입니다. Today is : Mon Feb 27 17:24:14 KST 2023 -->
2. second.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Action Tag</title> </head> <body> <h3>이 파일은 second.jsp 입니다.</h3> Today is : <%=new java.util.Date() %> </body> </html> <!-- 출력 : 이 파일은 second.jsp 입니다. Today is : Mon Feb 27 17:24:14 KST 2023 -->
◎ forward 액션 태그의 페이지 흐름 처리 과정
◎ forward 액션 태그로 현재 날짜와 시각을 출력하는 예제
1. forward.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Action Tag</title> </head> <body> <h2>forward 액션 태그</h2> <jsp:forward page="forward_date.jsp" /> <p>----------------------- </body> </html> <!-- 출력 : 오늘의 날짜 및 시간 2023. 2. 27. 오후 5:30:32 -->
2. forward_date.jsp<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Action Tag</title> </head> <body> <p>오늘의 날짜 및 시간 <p><%=(new java.util.Date()).toLocaleString() %> </body> </html> <!-- 출력 : 오늘의 날짜 및 시간 2023. 2. 27. 오후 5:30:32 -->
◎ include 액션 태그
▷ include 디렉티브 태그처럼 현재 JSP 페이지의 특정 영역에 외부 파일의 내용을 포함하는 태그
▷ 현재 JSP 페이지에 포함할 수 있는 외부 파일은 HTML, JSP, 서블릿 페이지 등
▷ page 속성 값
▶ 현재 JSP 페이지 내에 포함할 내용을 가진 외부 파일명
▶ 외부 파일은 현재 JSP 페이지와 같은 디렉터리에 있으면 파일명만 설정하고,
그렇지 않으면 전체 URL(또는 상대 경로) 설정 필요
▷ flush 속성 값
▶ 설정한 외부 파일로 제어가 이동할 때 현재 JSP 페이지가 지금까지 출력 버퍼에 저장한 결과를 처리,
기본 값은 false
▶ true로 설정하면 외부 파일로 제어가 이동할 때 현재 JSP 페이지가
지금까지 출력 버퍼에 저장된 내용을 웹 브라우저에 출력하고 출력 버퍼를 비움
◎ include 사용 예제 1
1. first.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Action Tag</title> </head> <body> <h3>이 파일은 first.jsp입니다.</h3> <jsp:include page="second.jsp" flush="false" /> <p>Java Server Page</p> </body> </html> <!-- 출력 : 이 파일은 first.jsp입니다. 이 파일은 second.jsp입니다. Today is : Mon Feb 27 17:41:15 KST 2023 Java Server Page -->
2. second.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Action Tag</title> </head> <body> <h3>이 파일은 second.jsp입니다.</h3> Today is : <%= new java.util.Date() %> </body> </html> <!-- 출력 : 이 파일은 second.jsp입니다. Today is : Mon Feb 27 17:41:15 KST 2023 -->
◎ include 액션 태그의 처리 과정
◎ include 액션 태그와 디렉티브 태그 차이점
◎ param 액션 태그
▷ 현재 JSP 페이지에서 다른 페이지에 정보를 전달하는 태그
▷ 이 태그는 단독으로 사용되지 못하며 <jsp:forward>나 <jsp:include> 태그의 내부에 사용
▷ 다른 페이지에 여러 개의 정보를 전송해야 할 때는 다중의 param 액션 태그 사용
◎ param 액션 태그 사용 예제 1
1. first.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Action Tag</title> </head> <body> <h3>이 파일은 first.jsp 입니다.</h3> <jsp:include page = "second.jsp"> <jsp:param name="date" value="<%=new java.util.Date()%>" /> </jsp:include> <p>Java Server Page</p> </body> </html> <!-- 출력 : 이 파일은 first.jsp 입니다. Today is : Mon Feb 27 18:43:10 KST 2023 Java Server Page -->
2. second.jsp<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Action Tag</title> </head> <body> Today is : <%= request.getParameter("date") %> </body> </html> <!-- 출력 : Today is : null -->
param을 이용하면 변수 명에 지정한 value 값들을 넣어줍니다.
변수 지정과 값 입력을 동시에 한다고 볼 수 있습니다.
◎ param 액션 태그 사용 예제 2
1. param01.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Action Tag</title> </head> <body> <h3>param 액션 태그</h3> <jsp:forward page="param01_data.jsp"> <jsp:param name="id" value="admin" /> <jsp:param name="name" value='<%=java.net.URLEncoder.encode("관리자") %>' /> </jsp:forward> <p>Java Server Page </body> </html> <!-- 아이디 : admin 이 름 : 관리자 -->
2. param01_data.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Action Tag</title> </head> <body> <p> 아이디 : <%=request.getParameter("id") %> <% String name = request.getParameter("name"); %> <p> 이 름 : <%=java.net.URLDecoder.decode(name) %> </body> </html
forward는 본인의 코드를 무시하고 다른 코드를 가져오는 것이고 include는 본인의 코드와 외부 파일의 코드를 모두 출력하는 것이며, param은 forward, include와 같이 쓰이면서 변수 선정 및 값 입력까지 동시에 할 수 있네요!!
배웠던 내용을 한 번 더 정리하니 훨씬 기억에 남네요!!
많은 분들의 피드백은 언제나 환영합니다! 많은 댓글 부탁드려요~~
'BackEnd > JSP' 카테고리의 다른 글
[JSP 웹 프로그래밍] 내장 객체 1 <javax> (request) (1) | 2023.03.01 |
---|---|
[JSP 웹 프로그래밍] 액션 태그 2 <jsp:... /> (1) | 2023.03.01 |
[JSP 웹 프로그래밍] 디렉티브 태그 2 <%@ ... %> (0) | 2023.02.27 |
[JSP 웹 프로그래밍] 디렉티브 태그 1 <%@ ... %> (0) | 2023.02.27 |
[JSP 웹 프로그래밍] 스크립트 태그 <% ... %> (0) | 2023.02.27 |