[JSP] 공통코드 작성하기 - <jsp:include> 액션태그
- 웹 개발/JSP
- 2019. 8. 17. 18:43
<jsp:include> 액션태그의 주요 사용 방법
<jsp:include page="포함할 페이지" flush ="true"/>
- page : 포함할 JSP 페이지의 경로를 지정
- flush : 지정한 JSP 페이지를 실행하기 전에 출력 버퍼를 플러시할지 여부를 지정한다. true이면 출력 버퍼를 플러시하고, false 이면 플러시하지 않는다.
flush 속성이란?? → https://sas-study.tistory.com/203
<jsp:include> 액션태그 동작방식
- 메인.jsp가 웹 브라우저의 요청을 받게됨
- <jsp:include>액션태그를 만나기 전까지의 메인.jsp의 출력내용을 출력버퍼에 저장
- <jsp:include>액션태그를 만났다면 해당 페이지로 흐름이 이동된다.
- <jsp:include>페이지의 출력내용을 출력버퍼에 담는다.(flush 속성이 true일 경우라면 비워진 버퍼에 담을것임)
- 흐름이 다시 메인.jsp로 돌아오게 된다.
- 출력버퍼의 내용을 응답데이터로 전송한다.
일반적으로
- header.jsp
- footer.jsp
- aside.jsp
- content.jsp
네가지의 페이지가 존재하고 이들이 한데 섞여 하나의 페이지를 구성한다고 할때, content.jsp 가 메인 페이지가 될 것이고 header, footer, aside 페이지들이 각각 조각페이지로 <jsp:include> 액션태그에 의해 content.jsp 파일에 삽입되는 형태로 구성될것이다.
이때, flush 속성은 false로 꺽어두는편이 좋다.
<jsp:param>으로 포함할 페이지에 파라미터를 추가할 수도 있다.
<jsp:include page="/header/header.jsp" flush="false">
<jsp:param name="param1" value="value1" />
<jsp:param name="param2" value="value2" />
</jsp:include>
이렇게 header.jsp에 param1이라는 속성명으로 value1이라는 값, param2 : value2 라는 값으로 파라미터를 전달할 수 있다. header.jsp에 로그인한 사용자의 정보를 띄운다고 한다거나 변하는 값을 header.jsp 에서 출력해야한다면 다음과 같이 파라미터를 전달하여 값을 출력하는 경우를 예로 들 수 있을 것 같다. 메인페이지에서 header.jsp로 실행흐름이 변경되기 때문에 파라미터를 전달하는 방법을 취하는 것이다. 당연하겠지만 전달된 파라미터는 header.jsp 페이지에서만 유효하게 사용될 수 있다.
- 또한 jsp:param으로 파라미터를 전달할 경우 인코딩셋을 알맞게 지정해야한다. utf-8 인코딩셋을 이용하여 파라미터값을 전송할 경우
request.setCharacterEncoding("utf-8");
다음과 같이 request객체로 캐릭터셋을 utf-8로 설정해놓고 전송해야한다. 마찬가지로 header.jsp 파일에서 파라미터를 받을 때 utf-8 캐릭터셋으로 파라미터값을 받아야 한다.
'웹 개발 > JSP' 카테고리의 다른 글
[JSP] 서블릿의 개념 및 기초 예제 (1) | 2019.08.18 |
---|---|
[JSP] 커스텀 태그 개념 및 예제 (0) | 2019.08.18 |
[JSP] flush 속성 (0) | 2019.08.17 |
[JSP] 에러페이지 지정하기 (0) | 2019.08.17 |
[JSP] GET 방식 전송과 POST 방식 전송 (1) | 2019.08.03 |