Search code examples
javajspjsp-fragments

What is .jspf file extension? How to compile it?


What are .jspf files in JSP? As I know the compiler will look for .jsp files to compile, then how are the .jspf files compiled?


Solution

  • As others have noted, .jspf files are JSP fragments. They're designed to be statically included in another JSP file, not compiled on their own:

    <%@include file="/WEB-INF/jspf/example.jspf" %>
    

    You'll note that this example comes from the /WEB-INF/jspf directory. This means that it is not accessible outside of the web application; there's no way to construct a URL that can retrieve it. If you put them in the same directory as "normal" JSP files, you can construct such a URL; Tomcat, for example will retrieve the page as a text document. A front-end web-server, however, can block these URLS.

    I like JSPF files as a first step in refactoring large JSP pages. Since they're statically included, you can extract a small chunk of the file without making provision for scriptets or variables, leading to pages that are somewhat more maintainable (and I want to stress, it's a first step; dynamic includes and taglibs are usually a better long-term solution). When refactoring, I believe in keeping the fragments close to their parent files; this is when having a web-server to block URLs becomes useful.