본문 바로가기

BackEnd/JSP

[JSP 웹 프로그래밍] 액션 태그 1 <jsp:... />

728x90
반응형

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와 같이 쓰이면서 변수 선정 및 값 입력까지 동시에 할 수 있네요!!

 

배웠던 내용을 한 번 더 정리하니 훨씬 기억에 남네요!!

 

많은 분들의 피드백은 언제나 환영합니다!  많은 댓글 부탁드려요~~

 

728x90
반응형