JSP Action Tag 중 표준 액션 태그에 대해 알아보자
JSP를 이루는 구성인자
🕐 JSP 스크립팅 원소
JSP 페이지에서 자바 코드를 직접 기술할 수 있게 하는 기술
예) 선언문, 스크립틀릿, 표현식(출력식)
🕑 지시어
JSP 페이지 정보에 대한 내용을 표현한다거나 또 다른 페이지를 포함할 때 사용
예) page 지시어, include 지시어, taglib 지시어(라이브러리를 추가할 때 사용)
🕒 JSP 액션 태그
XML 기술을 이용해서 기존의 JSP 문법을 확장하는 기술을 제공하는 태그
(XML 태그는 반드시 시작 태그와 종료태그가 한 세트로 있어야만 함)
👉🏻 표준 액션 태그(Standard Action Tag)
: JSP 페이지에서 바로 사용 가능한 태그 (별도의 라이브러리 연동이 필요 없음 == tablib 지시어 사용할 필요 없음)
표준 액션 태그는 모든 태그명 앞에 jsp: 이라는 접두어가 붙음
👉🏻 커스텀 액션 태그(Custom Action Tag)
: JSP 페이지에서 바로 사용 불가능한 태그 (별도의 라이브러리 연동이 필요한 => taglib 지시어 필요함)
커스텀 액션 태그는 모든 태그명 앞에 jsp: 이외의 다른 접두어가 붙음 (내가 지정한 접두어, 종류는 다양)
제공되고 있는 대표적인 유용한 라이브러리인 JSTL 가 있음
JSP Action Tag
👉🏻 XML 기술을 이용해서 기존의 JSP 문법을 확장시키는 기술을 제공하는 태그들
1. 표준 액션 태그
👉🏻 JSP 페이지에서 별도의 라이브러리 연동 없이 곧바로 사용 가능한 태그들
👉🏻 태그명 앞에 jsp: 이라는 접두어가 붙음
<include: 기존 화면의 해당 위치에 가져다 붙이기>
💻 index.jsp
<a href="views/2_StandardAction/01_include.jsp">01_jsp:include</a>
01_include.jsp, footer.jsp 생성
1) 기존의 include 지시어를 이용한 방식
👉🏻 include 하고 있는 페이지상에 선언되어 있는 변수를 현재 이 페이지에서도 사용 가능함
👉🏻 단, 현재 이 페이지에서 동일한 이름의 변수를 추가적으로 선언할 수 없음
💻 01_include.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h3>include</h3>
<p>
또 다른 페이지를 포함하고자 할 때 쓰이는 태그
</p>
<h4>1. 기존의 include 지시어를 이용한 방식</h4>
<%@ include file="footer.jsp" %>
<!-- 같은 폴더 내에 있으므로 파일명만 입력해도 됨! -->
<br><br>
특징: include 하고 있는 페이지상에 선언되어 있는 변수를 현재 이 페이지에서도 사용 가능함 <br>
include한 페이지의 year 변수값 : <%= year %>
단, 현재 이 페이지에서 동일한 이름의 변수를 추가적으로 선언할 수 없음 <br>
<%
String year = "2022";
// Duplicate local variable year : 변수명 중복 오류
%>
</body>
</html>
💻 footer.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="java.text.SimpleDateFormat, java.util.Date" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
String year = new SimpleDateFormat("yyyy").format(new Date());
%>
Copyright © 1998-<%= year %> KINGODOG Information Educational Institute All Right Reserved
<!-- 매년 해가 바뀔 때마다 직접적으로 년도를 바꾸는 것은 너무 귀찮음 -->
</body>
</html>
2) JSP 표준 액션 태그를 이용한 방식 (동적 include 방식)
👉🏻 반드시 시작 태그와 종료 태그를 같이 써야만 함 (XML 기술을 이용했으므로)
✔️ 중간 내용물이 없을 경우 슬래시로 종료 태그처럼 만들 수도 있음
💻 JSP 표준 액션 태그 방식 01_include.jsp
<h4>2. JSP 표준 액션 태그를 이용한 방식 (동적 include 방식 == 런타임 시(실행되는 도중에) 포함되는 형태 )</h4>
<!--
반드시 시작 태그와 종료 태그를 같이 써야만 함 (XML 기술을 이용했으므로)
-->
<!-- <jsp:include page="footer.jsp"></jsp:include> -->
<jsp:include page="footer.jsp" />
<!-- 중간 내용물이 없을 경우 슬래시로 종료 태그로 만들 수도 있음! -->
<br><br>
특징1: include 하고 있는 페이지에 선언된 변수를 공유하지 않음 (즉, 동일한 이름의 변수 선언 가능) <br>
<%
String year = "2022";
%>
특징 2: 페이지 포함 시 include 하는 페이지로 값을 전달할 수 있음 <br><br>
<jsp:include page="footer.jsp">
<jsp:param name="test" value="Hello...?" />
</jsp:include>
<br>
<jsp:include page="footer.jsp">
<jsp:param name="test" value="GoodBye!" />
</jsp:include>
💻 footer.jsp
<%
String year = new SimpleDateFormat("yyyy").format(new Date());
%>
Copyright © 1998-<%= year %> KINGODOG Information Educational Institute All Right Reserved
<!-- 매년 해가 바뀔 때마다 직접적으로 년도를 바꾸는 것은 너무 귀찮음 -->
<br>
test: ${ param.test }
<forward: url은 그대로이고 화면만 바꿔치기>
💻 index.jsp
<a href="views/2_StandardAction/02_forward.jsp">02_jsp:forward</a>
💻 02_forward.jsp 생성
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>여기는 02_forward.jsp 페이지야</h1>
<!-- 이 페이지의 url: http://localhost:8888/action/views/2_StandardAction/02_forward.jsp -->
<jsp:forward page="footer.jsp" />
<!-- forward의 특징상 url 주소는 같으나 화면만 바꿔치기되어 footer.jsp로 나옴! -->
</body>
</html>
![](https://blog.kakaocdn.net/dn/cpFZQm/btrQMsyWg4s/sx145TJGTkYO3goGoEnjF0/img.png)
![](https://blog.kakaocdn.net/dn/OBfoM/btrQK1BzOm2/egt5fYWu5ZRVdam2E3mMkK/img.png)
2. 커스텀 액션 태그
👉🏻 JSP 페이지에서 바로 사용 불가능한 태그 (별도의 라이브러리 연동이 필요한 => taglib 지시어 필요함)
👉🏻 커스텀 액션 태그는 모든 태그명 앞에 jsp: 이외의 다른 접두어가 붙음 (내가 지정한 접두어, 종류는 다양)
👉🏻 제공되고 있는 대표적인 유용한 라이브러리인 JSTL 가 있음