Quand utiliser JSP et JSPF
Réutilisation du code JSP
Les fichiers JSPF peuvent être utilisés pour rendre la programmation d'applications Web Java complexes moins fastidieuses et sources d'erreurs en divisant l'application en plusieurs unités ou modules plus petits et plus faciles à gérer. Idéalement, chaque module devrait être dédié à une seule partie d'un programme complet et être de nature générale afin que le code puisse être réutilisé dans les futures applications JSP. Le fichier JSP parent aura une directive "include" pour chaque fichier de fragment JSPF, qui les joindra tous dans une application JSP complète.
Refactoring de code
Le fractionnement d'un fichier JSP volumineux en fragments JSPF plus modulaires et plus petits présente l'avantage supplémentaire de faciliter la tâche de refactoring de code. Le refactoring de code est une technique permettant d'améliorer la qualité du code en l'examinant, en le divisant en unités logiques, puis en réécrivant ces unités une par une. L'utilisation de fragments JSPF peut aider à éliminer les erreurs et à améliorer les performances de chaque unité et de l'application montée finale.
Restriction d'accès
Par convention, les fragments JSPF doivent être stockés dans le répertoire "/ WEB-INF / jspf /". Ce répertoire est accessible par les conteneurs de servlets tels que Tomcat et JBoss Application Server, mais pas par les serveurs Web tels qu'Apache ou Microsoft IIS. Vous pouvez fractionner une page JSP complète en fichiers de fragments JSPF et les masquer dans le répertoire "/ WEB-INF / jspf /". Vous pouvez également masquer une page JSP complète de l'accès Web en la stockant dans des fragments JSPF.
Interactions JSP
Les pages JSP complètes peuvent importer d'autres pages JSP complètes ainsi que des fragments JSPF. Vous pouvez le faire en utilisant les directives "dsp: include" ou "jsp: include". La directive "dsp: include" permettra à un fichier JSP parent de transmettre des paramètres aux méthodes des fichiers JSP enfants. La directive "jsp: include" n'autorise pas la transmission de paramètres aux méthodes des fichiers JSPF, mais permet aux méthodes des fragments JSPF d'accéder à des données globales et à d'autres objets auxquels les règles de portée Java permettent l'accès.