JSP Include, Forward

송수혁·2023년 4월 20일

java

목록 보기
1/1

Jsp 의 Include & Forward 방식

Include 방식

  • 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를 하는 경우에는 소스를 분할하여 사용하고 가독성을 높일 수 있다는 장점이 있다. 또한, 불필요한 소스를 배제하거나 동적 불러오기가 가능하다.

Forward 방식

  • Forward 방식이란? 💡 로직 자체를 넘겨버리는 방식 로직 자체를 넘겨주는 방식이다. ![https://s3-us-west-2.amazonaws.com/secure.notion-static.com/504f22bb-d3f5-4193-84c9-1f979f937c20/Untitled.png](https://s3-us-west-2.amazonaws.com/secure.notion-static.com/504f22bb-d3f5-4193-84c9-1f979f937c20/Untitled.png)
  • Forward 방식의 종류 RequestDispatcher 를 이용한 방식
    <%
    		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에 파라미터로 넘겨서 흐름을 넘긴다.
  • Forward 사용 이유는?
    에러를 처리하거나, 혹은 처리를 할 수 있도록 하는 방식으로 사용된다.
profile
매일 발전하는 Backend 개발자

0개의 댓글