JSP est un Technologie de visualisation Java qui s'exécute sur la machine serveur et qui vous permet d'écrire des modèles de texte dans des langages côté client (comme HTML, CSS, JavaScript, etc.). JSP supporte taglibs qui sont soutenus par des éléments de code Java qui vous permettent de contrôler le flux ou la sortie de la page de manière dynamique. Un taglib bien connu est JSTL . JSP supporte également Langage d'expression qui peut être utilisé pour accéder aux données du backend (via les attributs disponibles dans les scopes de la page, de la requête, de la session et de l'application), le plus souvent en combinaison avec des taglibs.
Lorsqu'une JSP est demandée pour la première fois ou lorsque l'application web démarre, le conteneur de servlets la compile dans une classe étendant HttpServlet
et l'utiliser pendant la durée de vie de l'application web. Vous pouvez trouver le code source généré dans le répertoire de travail du serveur. Dans par exemple Tomcat c'est le /work
répertoire. Lors d'une requête JSP, le conteneur de servlets exécute la classe JSP compilée et envoie la sortie générée (généralement juste du HTML/CSS/JS) à travers le serveur web sur un réseau vers le côté client, qui à son tour l'affiche dans le navigateur web.
Servlet est un Interface de programmation d'applications (API) Java exécuté sur la machine serveur, qui intercepte les demandes faites par le client et génère/envoie une réponse. Un exemple bien connu est le HttpServlet
qui fournit des méthodes pour accrocher sur HTTP en utilisant le populaire Méthodes HTTP como GET
y POST
. Vous pouvez configurer HttpServlet
pour écouter un certain modèle d'URL HTTP, qui peut être configuré dans la section web.xml
ou, plus récemment, avec Java EE 6 con @WebServlet
annotation.
Lorsqu'une servlet est demandée pour la première fois ou lors du démarrage de l'application Web, le conteneur de servlets en crée une instance et la garde en mémoire pendant toute la durée de vie de l'application Web. La même instance sera réutilisée pour chaque requête entrante dont l'URL correspond au modèle d'URL de la servlet. Vous pouvez accéder aux données de la requête par HttpServletRequest
et traiter la réponse par HttpServletResponse
. Ces deux objets sont disponibles en tant qu'arguments de méthode dans n'importe quelle méthode surchargée de l'élément HttpServlet
comme doGet()
y doPost()
.
JSF est un cadre MVC basé sur des composants qui est construit au-dessus de l'API Servlet et qui fournit composants via des taglibs qui peuvent être utilisés dans JSP ou toute autre technologie de visualisation basée sur Java, telle que Facettes . Facelets est beaucoup plus adapté à JSF qu'à JSP. Il fournit notamment de grandes capacités de création de modèles como composants composites alors que JSP n'offre que l'option <jsp:include>
pour le templating dans JSF, de sorte que vous êtes obligé de créer des composants personnalisés avec du code Java brut (ce qui est un peu opaque et beaucoup de travail fastidieux) lorsque vous voulez remplacer un groupe répété de composants par un seul composant. Depuis JSF 2.0, JSP a été déprécié en tant que technologie de vue en faveur de Facelets.
Nota : JSP lui-même n'est PAS déprécié, seule la combinaison de JSF avec JSP est dépréciée.
Nota : JSP possède de grandes capacités de templating au moyen de Taglibs, en particulier le ( Fichier Tag ) variante. Ce qui manque, c'est un modèle JSP combiné à JSF.
En tant que MVC ( Modèle-Vue-Contrôleur ), JSF fournit le FacesServlet
comme la seule demande-réponse Contrôleur . Il vous décharge de toutes les tâches standard et fastidieuses liées aux requêtes/réponses HTTP, telles que la collecte des données de l'utilisateur, leur validation/conversion, leur intégration dans des objets de modèle, l'invocation d'actions et le rendu de la réponse. De cette façon, vous obtenez essentiellement une page JSP ou Facelets (XHTML) pour les éléments suivants Voir et une classe JavaBean comme Modèle . Les composants JSF sont utilisés pour lier la vue au modèle (comme le fait votre contrôle Web ASP.NET) et les composants JSF sont utilisés pour lier la vue au modèle. FacesServlet
utilise le Arbre des composants JSF pour faire tout le travail.
Questions connexes
3 votes
Dans JSF 2.0+, le xml n'est pas nécessaire.