Include 방식이란?

제어의 흐름에 해당 부분을 포함시키는 것. Include 는 흐름의 포함이다.
Include 방식의 종류
<%@include file=""%>
<%@include file="[path]"%> 방식을 사용한다.
위와 같은 경우에는 제어의 흐름을 넘기는 방식이 아니라, 소스 자체를 붙여넣어 처리한다.
변수를 사용도 가능하고, 조각난 소스를 모으는데 처리하는 방식이다.
RequestDispatcher 를 이용한 방식
<%
RequestDispatcher dispatcher = request.getRequestDispatcher("[Path]");
dispatcher.include(request,response);
dispatcher.forward(request,response);
%>
본격적으로 제어의 흐름을 넘기는 방식.
request 안에있는 Dispatcher를 이용하여 해당 파일로 제어를 넘긴다.
request 객체와 response 객체 사용이 가능하다.
request 에 attribute 를 넣거나, 파라미터를 넣고 넘겨주는 방식이다.
결과물을 html 문서가 아닌 제어만 넘기는 방식이다.
dispatcher 가 수행하고나면,
결과물을 request 에서 받아서 처리하는 방식으로 사용된다.
<jsp:include page=""></jsp:include>
<jsp:include page="[PATH]">
<jsp:param name="[변수 키]" value="[변수 값]"/>
</jsp:include>
jsp 내장 태그를 이용하는 방식
jstl 은 외부 라이브러리를 가져와서 사용해야하지만, jsp 는 기본 내장이 있다.
html 내부에 <%%> 등이 혼재되면, 소스를 알아보기 더욱 힘들어지기 때문에 만들어진 태그
jsp 액션 태그.
RequestDispatcher dispatcher 를 하는 방식과 동일하나,
parameter 를 넘기는 방식이 더욱 수월하다.
또한 소스의 가독성을 높이고 html 결과물을 가져올 수 있다.
단점
request 안에 attribute 를 넣거나, 하는 방식을 사용하는 경우 include 는 태그로 사용하고
밑에 <% %> 태그를 다시 사용해야 할 수 있음.
해당 태그는 html 소스를 모듈화해서 사용하는 방식으로 쓰인다.
page 에 java String 으로 들어가게 해서 동적으로 불러오는 것 또한 가능하다.
클라이언트가 요청을 전송했을 때, include 가 진행이 된다.
Include 의 장점
💡 Include를 하는 경우에는 소스를 분할하여 사용하고 가독성을 높일 수 있다는 장점이 있다. 또한, 불필요한 소스를 배제하거나 동적 불러오기가 가능하다.<%
RequestDispatcher dispatcher = request.getRequestDispatcher("[Path]");
dispatcher.include(request,response);
dispatcher.forward(request,response);
%>
include 와 동일하다. 결국 html 페이지로 받는 형태가 아니라서
해당 로직 종료시에 나오는 것이 된다. <jsp:forward page=""></jsp:forward><jsp:forward page="">
</jsp:forward>
페이지 처리 자체를 forward 를 통해 넘긴다.
해당 로직이 종료되면 html 로 소스코드가 나온다.
즉, 이용을 처리하기 위한 방식.
forward에 파라미터로 넘겨서 흐름을 넘긴다.