1. SiteMesh의 정의
SiteMesh는 웹 페이지의 레이아웃을 효율적으로 처리할 수 있도록 도와주는 프레임워크입니다.
쉽게 말해서 웹사이트의 동일한 상단, 하단, 메뉴 부분을 한곳에서 관리하고 각각의 페이지는 실제 내용만을 관리할 수 있도록 해줍니다.
즉, 상단/하단/메뉴와 같이 반복되는 부분이 각 페이지마다 들어가 있으면 추후 유지보수가 어렵기 때문에
SiteMesh와 같은 프레임워크를 사용하는 것이죠.
장점 : 레이아웃 정보와 본문을 분리해서 개발함으로써 레이아웃이 변경될 경우 빠르게 대응, 본문 페이지의 소스코드가 줄어들어 개발 생산성 및 유지보수성을 높일 수 있다.
SiteMesh는 기본적으로 Java Servlet 환경에서 Filter 형태로 동작하고 있으며
다음 그림과 같이 Decorator 페이지를 한번 필터링 하는 방식입니다.
기존 페이지는 웹서버가 바로 렌더링된 페이지를 보내주지만 SiteMesh에서는 Decorator 페이지를 한번 더 거치게 된다는 것이죠.
미리 중간에 있는 이미지와 같이 Decorator를 정의해 둡니다.
상단의 {title}과 우측의 Body-Content만 각각의 파일들은 가지고 있으면 되는 것이죠.
즉, welcome.jsp와 search.cgi와 같은 파일에는 본문에 들어갈 내용만 가지고 있으면 되는 겁니다.
이제 Filter를 통해 decorator를 거치면서 하단과 같이 동일한 상단, 하단, 메뉴를 가지고 있는 페이지로 사용자에게 전송됩니다.