JSP
JSP 웹 프로그래밍 - 액션 태그 01
로기221
2023. 2. 27. 18:27
728x90
반응형
액션 태그의 개요
액션 태그
- 서버나 클라이언트에게 어떤 행동을 하도록 명령하는 태그
- JSP 페이지에서 페이지와 페이지 사이 제어
- 다른 페이지의 실행 결과 내용을 현재 페이지에 포함
- 자바 빈즈(JavaBeans) 등의 다양한 기능 제공
- XML 형식 <jsp: … /> 사용
액션 태그의 종류
forward 액션 태그의 기능과 사용법
forward 액션 태그
- 현재 JSP 페이지에서 다른 페이지로 이동하는 태그
- JSP 컨테이너는 현재 JSP 페이지에서 forward 액션 태그를 만나면
- 그 전까지 출력 버퍼에 저장되어 있던 내용을 모두 삭제하고
- forward 액션 태그에 설정된 페이지로 프로그램의 제어가 이동

- page 속성 값
- 현재 JSP 페이지에서 이동할 페이지의 외부 파일명
- 외부 파일은 현재 JSP 페이지와 같은 디렉터리에 있으면 파일명만 설정하고,
그렇지 않으면 전체 URL(또는 상대 경로)을 설정해야 함
forward 액션 태그의 페이지 흐름 처리 과정
forward 액션 태그로 현재 날짜와 시각을 출력하는 페이지로 이동
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>
<h2>forward 액션 태그</h2>
<jsp:forward page="forward_date.jsp" />
<p>-----------------------------------
</body>
</html>
forward_date
<%@ 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>
- 출력 -
-- forward 액션 태그 사용시 주의점 --
웹 서버는 forward 액션 태그를 수행할 때 출력 버퍼를 지우므로 현재 페이지에서 forward 액션 태그가 선언된 지점 이전까지 생성된 HTML 코드가 손실된다. 그러나 현재 페이지가 이미 전달 버퍼로 채워진 경우에는 전달이 중단될 때까지 해당 내용을 웹서버에서 응답으로 보낸다. 이렇게 하면 잘못된 페이지가 클라ㅣ언트로 전송 될 수 있다. 따라서 큰 출력을 생성하는 페이지에서 forward 액션 태그를 호출할 때는 신중을 기해야한다.
include 액션 태그의 기능과 사용법
include 액션 태그
- include 디렉티브 태그처럼 현재 JSP 페이지의 특정 영역에 외부 파일의
내용을 포함하는 태그 - 현재 JSP 페이지에 포함할 수 있는 외부 파일은 HTML, JSP, 서블릿 페이지 등
- page 속성 값
- 현재 JSP 페이지 내에 포함할 내용을 가진 외부 파일명
- 외부 파일은 현재 JSP 페이지와 같은 디렉터리에 있으면 파일명만 설정하고,
그렇지 않으면 전체 URL(또는 상대 경로)을 설정해야 함
- flush 속성 값
- 설정한 외부 파일로 제어가 이동할 때 현재 JSP 페이지가 지금까지 출력 버퍼에 저장한 결과를 처리, 기본 값은 false
- true 로 설정하면 외부 파일로 제어가 이동할 때 현재 JSP 페이지가 지금까지 출력 버퍼에 저장된 내용을 웹 브라우저에 출력하고 출력 버퍼를 비움
include 액션 태그 사용 예
// 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>
// second.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>이 파일은 second.jsp 입니다.</h3>
Today is : <%= new java.util.Date() %>
</body>
</html>
- 출력 -
include 액션 태그의 처리 과정
include 액션 태그에 현재 날짜와 시각을 출력하는 페이지 포함하기
// include
<%@ 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>include 액션 태그</h2>
<jsp:include page="include_date.jsp" flush="true" />
<p>------------------------------------------------
</body>
</html>
// include_date
<%@ 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>
- 출력 -
param 액션 태그의 기능과 사용법
param 액션 태그
- 현재 JSP 페이지에서 다른 페이지에 정보를 전달하는 태그
- 이 태그는 단독으로 사용되지 못하며 <jsp:forward>나 <jsp:include> 태그의 내부에 사용
- 다른 페이지에 여러 개의 정보를 전송해야 할 때는 다중의 param 액션 태그 사용
jsp:param 액션 태그 사용 예
<%@ 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" >
<jsp:param name="date" value="<%= new java.util.Date() %>" />
</jsp:include>
<p>Java Server Page</p>
</body>
</html>
<%@ 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>이 파일은 second.jsp 입니다.</h3>
Today is : <%= request.getParameter("date")%>
</body>
</html>
- 출력 -
forward 액션 태그와 param 액션 태그에 아이디와 이름 전달하기
// 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>
// 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>
- 출력 -
include 액션 태그와 param 액션 태그에 제목과 현재 날짜 전달하기
// param02.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:include page="param02_data.jsp">
<jsp:param name="title" value='<%=java.net.URLEncoder.encode("오늘의 날짜와 시각")%>' />
<jsp:param name="date" value='<%=java.util.Calendar.getInstance().getTime()%>' />
</jsp:include>
</body>
</html>
// param02_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>
<%
String title = request.getParameter("title");
%>
<h3><%=java.net.URLDecoder.decode(title)%></h3>
Today is :<%=request.getParameter("date") %>
</body>
</html>
- 출력 -
728x90
반응형