Which template method is more common?
a) Generating 2 static files header.jsp, footer.jsp, few dynamic files, eg. index.jsp, content.jsp and using <jsp-config>
so whenever servlet forwards header and footer are appended.
web.xml
<jsp-config>
<jsp-property-group>
<url-pattern>/WEB-INF/*</url-pattern>
<include-prelude>/WEB-INF/header.jspf</include-prelude>
<include-coda>/WEB-INF/footer.jspf</include-coda>
</jsp-property-group>
</jsp-config>
Servlet.java
@WebServlet("/index")
// ...
protected void doGet(HttpServletRequest request, HttpServletResponse response) {
// do work
request.getRequestDispatcher("/WEB-INF/index.jsp").forward(request, response);
}
Pros:
- special attributes are not needed
Cros:
- code is separated
b) Generating 1 static file mainpage.jsp, few dynamic files and using <jsp:include page='${pageUrl}'>
so whenever servlet forwards needs to add attribute with site-content url
Servlet.java
@WebServlet("/index")
// ...
protected void doGet(HttpServletRequest request, HttpServletResponse response) {
// do work
request.setAttribute("pageUrl", "index.jsp");
request.getRequestDispatcher("/WEB-INF/mainpage.jsp").forward(request, response);
}
mainpage.jsp
<%@ page ... #>
<html>
<body>
<div id="header"></div>
<div id="content">
<jsp:include page='${pageUrl}'>
</div>
<div id="footer"></div>
</body>
</html>
index.jsp
<%@ page ... %>
content
Pros:
- code is organised
Cros:
- special attribute is needed
c) ?