본문 바로가기
도서/프로그래밍

[03] 쉽게 배우는 JSP 웹 프로그래밍

by 신발사야지 2024. 1. 16.

3일차

CHARTER 04 액션태그

01 액션 태그의 개요

액션 태그는 서버나 클라이언트에게 어떤 행동을 하도록 명령하는 태그로 스크립트 태그, 주석, 디렉티브 태그와 함께 JSP 페이지를 구성하는 태그입니다.

액션태그는 형식 <jsp: …/> 형식을 따르며 반드시 /> 로 마무리 해야 합니다.

액션 태그 형식 설명

forward <jsp:forard /> 다른 페이지로의 이동과 같은 페이지 흐름을 제어한다
include <jsp:include /> 외부 페이지의 내용을 포함하거나 페이지를 모듈화 한다.
useBean <jsp:useBean /> JSP 페이지에 자바빈즈를 설정한다.
setProperty <jsp:setProperty /> 자바빈즈의 프로퍼티 값을 설정한다
getProperty <jsp:getProperty /> 자바빈즈의 프로퍼티 값을 얻어온다
param <jsp:param /> forward, include, plugin 태그에 인자를 추가한다
plugin <jsp:plugin /> 웹 브라우저에 자바 애플릿을 실행한다
element <jsp:element /> 동적 XML 요소를 설정한다
attribute <jsp:attribute /> 동적으로 정의된 XML 요소의 속성을 설정한다
body <jsp:body /> 동적으로 정의된 XML 요소의 몸체를 설정한다
text <jsp:text /> JSP 페이지 문서에서 템플릿 텍스트를 작성한다

02 forward 액션 태그

현재 JSP 페이지에서 다른 페이지로 이동하는 태그

JSP 페이지에서 forward 액션 태그를 만나면 그전까지 출력 버퍼에 저장되어 있던 내용을 모두 삭제합니다. 그리고 forward 액션 태그에 설정된 페이지로 프로그램의 제어가 이동합니다.

주소는 그대로지만 forward 로 이동한 JSP 파일을 보여줍니다.

이걸 쓸데가 있을까?

03 include 액션 태그

include 디렉티브 태그처럼 현재 JSP 페이지의 특정 영역에 외부 파일의 내용을 포함하는 태그로 형식은 다음과 같습니다.

디렉티비는 JSP를 그대로 가져와서 컴파일 하는 것이고 액션태그는 컴파일된 JSP를 가져온다는 차이점이 있습니다.

일반적으로 include 액션태그는 레이아웃의 한 구성 요소를 모듈화 하기 위해 사용되고

include 디렉티비는 포함하는 jsp에서 포함되는 jsp 내 변수나 메서드를 사용할 수 있기 때문에 반복적으로 사용되는 변수나 메서드를 사용할 때 많이 사용합니다.

jsp:include와 include 디렉티브의 차이점

04 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>
	<jsp:forward page="param01_data.jsp">
		<jsp:param name="id" value ="admin" />
		<jsp:param name="name" value = '<%=java.net.URLEncoder.encode("관리자") %>' />
	</jsp:forward>
</body>
</html>
<%@ 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>
	<p>
		이름: <%=java.net.URLDecoder.decode(name) %>
	</p>
</body>
</html>

05 자바빈즈 액션 태그

자바빈즈는 동적 콘텐츠 개발을 위해 자바 코드를 사용하여 자바 클래스로 로직을 작성하는 방법입니다. 다시 말해 JSP 페이지에서 화면을 표현하기 위한 계산식이나 자료의 처리를 담당하는 자바 코드를 따로 분리하여 작성하는 것을 의미합니다.

자바빈즈의 조건

  • 자바 클래스는 java.io.Serializable 인터페이스를 구현해야 합니다
  • 인수가 없는 기본 생성자가 있어야 합니다
  • 모든 멤버 변수인 프로퍼티는 private 접근 지정자로 설정해야 합니다.
  • 모든 멤버 변수인 프로퍼티는 Getter/Setter() 메소드가 존재해야 합니다.