JSP 표준 액션 태그와 관련 코드 설명

JSP의 표준 액션 태그는 JSP 페이지에서 특정 작업을 수행하는데 사용됩니다. 예를 들어, 다른 JSP 페이지를 포함하거나(forward), 자바빈을 사용하여 데이터를 저장하거나 가져오는 등의 작업이 가능합니다. 이러한 태그는 스크립틀릿 태그( <% ... %>)의 사용을 줄이고 더 구조화된 코드를 작성하는 데 도움을 줍니다.

1. <jsp:include> 액션 태그

  • 역할: 지정된 JSP 파일을 현재 페이지에 포함합니다.
  • 특징:
    • 동적으로 삽입이 이루어짐
    • 삽입된 페이지의 실행 결과가 포함됨 (메서드 호출과 유사)
    • flush 속성을 true로 설정하면, 현재 JSP 페이지의 버퍼가 플러시된 후에 포함된 페이지가 실행됨

2. <jsp:param> 액션 태그

  • 역할: <jsp:include><jsp:forward> 태그와 함께 사용되어, 요청 시 전달할 파라미터를 지정합니다.

코드 설명

main3.jsp

<%@ page contentType="text/html; charset=UTF-8"%>
<!DOCTYPE html>
<html lang="ko">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>include 액션 실습</title>
</head>
<body>
<h1>include 태그 실습</h1>
현재 시간을 구하는 예제입니다. 다음줄에 삽입이 됩니다.<br>
<jsp:include page="header2.jsp" flush="true">
    <jsp:param name="nickName" value="Mr Hong" />
</jsp:include>
</body>
</html>
  • 설명:
    • <%@ page contentType="text/html; charset=UTF-8"%>: 페이지의 콘텐츠 타입과 인코딩을 설정.
    • <jsp:include>: header2.jsp 파일을 포함.
    • <jsp:param>: 포함된 페이지에 nickName이라는 파라미터를 전달.

header2.jsp

<%@page import="java.util.Calendar"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<%
    String nickName = request.getParameter("nickName");
    Calendar cal = Calendar.getInstance();
    int hour = cal.get(Calendar.HOUR_OF_DAY);
    int minute = cal.get(Calendar.MINUTE);
    int second = cal.get(Calendar.SECOND);
%>
안녕하세요 당신의 닉네임은 <%= nickName %>입니다.<br>
현재 시간은 <%= hour %> 시 <%= minute %> 분 <%= second %> 초 입니다.
  • 설명:
    • <%@page import="java.util.Calendar"%>: Calendar 클래스를 가져옴.
    • request.getParameter("nickName"): main3.jsp에서 전달된 파라미터 값을 가져옴.
    • 현재 시간을 Calendar 클래스를 사용하여 구함.

실행 과정 설명

  1. main3.jsp 요청: 사용자가 main3.jsp 페이지에 접근합니다.
  2. main3.jsp 처리:
    • header2.jsp 파일을 포함하도록 <jsp:include> 태그가 처리됩니다.
    • flush="true"로 설정되어 있어, main3.jsp의 버퍼가 플러시된 후 header2.jsp가 실행됩니다.
  3. header2.jsp 요청 및 실행:
    • main3.jsp에서 전달된 nickName 파라미터를 request.getParameter("nickName")로 받아옵니다.
    • Calendar 클래스를 사용하여 현재 시간을 구합니다.
    • 구한 현재 시간과 nickName을 포함한 HTML 콘텐츠를 생성합니다.
  4. 결과 반환:
    • header2.jsp의 결과가 main3.jsp에 삽입되고, 최종 HTML이 브라우저에 반환됩니다.
    • 결과적으로 사용자는 "안녕하세요 당신의 닉네임은 Mr Hong입니다. 현재 시간은 xx 시 xx 분 xx 초 입니다."와 같은 메시지를 보게 됩니다.

이러한 방식으로 <jsp:include> 태그와 <jsp:param> 태그를 사용하여 JSP 페이지 간에 데이터를 전달하고 포함할 수 있습니다. 각 태그와 코드 블록은 JSP 페이지의 모듈화와 재사용성을 높이는 데 중요한 역할을 합니다.

0개의 댓글