1

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) ?

user1112008
  • 432
  • 10
  • 27
  • 1
    If you're using JSF, it already provides template system but you should use Facelets for that. If not, use a theme system like freemarker. – Luiggi Mendoza Nov 18 '13 at 21:51
  • See [jsp tricks to make templating easier](http://stackoverflow.com/questions/1296235/jsp-tricks-to-make-templating-easier) – Vadzim Jul 10 '14 at 13:10

0 Answers0