📢import 태그 : 다른 웹프로그램을 요청하여 결과를 응답받아 포함하는 태그
→ JSP의 include 액션 태그와 유사한 기능
📌url 속성 : 요청 웹프로그램의 URL 주소를 속성값으로 설정<c:import url="core_import_target.jsp"/>
📢param 태그 : 요청 웹프로그램에게 값을 전달하기 위한 태그
→ URL 관리 태그의 종속 태그
→ URL 관리 태그에 param 태그를 제외한 코드가 존재할 경우 에러 발생 - JSP 주석 예외📃core_import_source.jsp
※ webapp/jstl 폴더에 core_import_source.jsp 생성
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>MVC</title> </head> <body> <h1>Core - URL 관리 태그</h1> <hr> <p>core_import_source.jsp 문서의 응답 결과입니다.</p> <%-- ----------------------------------------------------------------------------------------------------- --%> <%-- import 태그 : 다른 웹프로그램을 요청하여 결과를 응답받아 포함하는 태그 --%> <%-- → JSP의 include 액션 태그와 유사한 기능 --%> <%-- url 속성 : 요청 웹프로그램의 URL 주소를 속성값으로 설정 --%> <%-- <c:import url="core_import_target.jsp"/> --%> <%-- ----------------------------------------------------------------------------------------------------- --%> <%-- JSP의 include 태그는 현재 서버의 웹프로그램만 요청하여 실행 결과를 응답받아 포함 하지만 import 태그는 다른 서버의 웹프로그램을 요청하여 실행결과를 응답받아 포함 가능 --%> <%-- → HTML의 iframe 태그와 유사한 기능을 제공 --%> <%-- <c:import url="https://www.naver.com"/> --%> <%-- ----------------------------------------------------------------------------------------------------- --%> <%-- URL 관리 태그에서는 param 태그를 하위태그로 사용하여 값 전달 가능 --%> <c:import url="core_import_target.jsp"> <%-- param 태그 : 요청 웹프로그램에게 값을 전달하기 위한 태그 --%> <%-- → URL 관리 태그의 종속 태그 --%> <%-- → URL 관리 태그에 param 태그를 제외한 코드가 존재할 경우 에러 발생 - JSP 주석 예외 --%> <c:param name="name" value="홍길동"/> </c:import> </body> </html>
📃core_import_target.jsp
※ webapp/jstl 폴더에 core_import_target.jsp 생성
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>MVC</title> </head> <body> <h1>Core - URL 관리 태그</h1> <hr> <p>core_import_target.jsp 문서의 응답 결과입니다.</p> <p>${param.name }님, 안녕하세요.</p> </body> </html>
📢redirect 태그 : 클라이언트에게 URL 주소를 전달하여 재요청하도록 응답 처리하는 태그
📌url 속성 : 클라이언트에게 전달하여 재요청하기 위한 URL 주소를 속성값으로 설정
📃core_redirect_form.jsp
※ webapp/jstl 폴더에 core_redirect_form.jsp 생성
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>MVC</title> </head> <body> <h1>Core - URL 관리 태그</h1> <hr> <form action="core_redirect_action.jsp" method="post"> 이름 : <input type="text" name="name"> <button type="submit">전송</button> </form> </body> </html>
📃core_redirect_action.jsp
※ webapp/jstl 폴더에 core_redirect_action.jsp 생성
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>MVC</title> </head> <body> <h1>Core - URL 관리 태그</h1> <hr> <c:choose> <c:when test="${!empty(param.name) }"> <p>${param.name }님, 안녕하세요.</p> </c:when> <c:otherwise> <%-- redirect 태그 : 클라이언트에게 URL 주소를 전달하여 재요청하도록 응답 처리하는 태그 --%> <%-- url 속성 : 클라이언트에게 전달하여 재요청하기 위한 URL 주소를 속성값으로 설정 --%> <c:redirect url="core_redirect_form.jsp"></c:redirect> </c:otherwise> </c:choose> </body> </html>
📢url 태그 : 컨텍스트 경로가 포함된 웹자원의 절대경로를 제공하는 태그
📌value 속성 : 컨텍스트 경로를 제외한 웹자원의 절대경로를 속성값으로 설정
📃core_url.jsp
※ webapp/jstl 폴더에 core_url.jsp 생성
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>MVC</title> </head> <body> <h1>Core - URL 관리 태그</h1> <hr> <%-- 웹자원을 상대경로로 표현하여 제공 --%> <%-- 상대경로 : 현재 요청 웹프로그램의 경로를 기준으로 웹자원의 경로를 표현하는 방법 --%> <%-- 문제점) MVC 패턴을 이용하여 JSP Model-2 방식으로 웹프로그램 작성시 요청 웹프로그램(컨드롤러)의 경로와 응답 웹프로그램(뷰)의 경로가 다른 경우 404 에러 발생 --%> <%-- 해결법) 웹자원의 경로를 절대경로로 표현하여 제공 --%> <img src="images/Koala.jpg" width="200"> <%-- ----------------------------------------------------------------------------------------------------- --%> <%-- 절대경로 : 최상위 디렉토리를 기준으로 웹자원의 경로를 표현하는 방법 --%> <%-- → CSL(HTML, CSS, JavaScript 등)에서는 서버의 디렉토리를 최상위 디렉토리로 처리 --%> <%-- 문제점) 컨텍스트(mvc) 이름이 변경될 경우 컨텍스트 경로가 변경되어 404 에러 발생 --%> <%-- 해결법) request 객체의 메소드를 호출하여 컨텍스트 경로를 반환받아 사용 --%> <img src="/mvc/jstl/images/Koala.jpg" width="200"> <%-- ----------------------------------------------------------------------------------------------------- --%> <%-- request.getContextPath() 메소드를 호출하여 컨텍스트 경로를 반환받아 절대경로로 표현 --%> <img src="<%=request.getContextPath() %>/jstl/images/Koala.jpg" width="200"> <%-- ----------------------------------------------------------------------------------------------------- --%> <%-- EL 표현식에서 pageContext 내장객체를 사용하여 컨텍스트 경로를 제공받아 절대경로로 표현 --%> <img src="${pageContext.request.contextPath }/jstl/images/Koala.jpg" width="200"> <%-- ----------------------------------------------------------------------------------------------------- --%> <%-- url 태그 : 컨텍스트 경로가 포함된 웹자원의 절대경로를 제공하는 태그 --%> <%-- value 속성 : 컨텍스트 경로를 제외한 웹자원의 절대경로를 속성값으로 설정 --%> <img src='<c:url value="/jstl/images/Koala.jpg"/>' width="200"> </body> </html>