Quelle est la différence entre JSF, Servlet et JSP?

Quelle est la relation entre JSP et Servlet? JSP est-il une sorte de servlet? Comment les JSP et JSF sont-ils liés les uns aux autres? JSF est-il une sorte de JSP basé sur l’interface utilisateur de pré-construction comme ASP.NET-MVC?

JSP (JavaServer Pages)

JSP est une technologie de vue Java exécutée sur la machine serveur qui vous permet d’écrire du texte de modèle dans les langages côté client (comme HTML, CSS, JavaScript, etc.). JSP prend en charge les balises taglibs , qui sont sauvegardées par des morceaux de code Java qui vous permettent de contrôler le stream ou la sortie de la page de manière dynamic. Un taglib bien connu est JSTL . JSP prend également en charge le langage d’expression , qui peut être utilisé pour accéder aux données de backend (via les atsortingbuts disponibles dans la page, les scopes de requête, de session et d’application), principalement en combinaison avec les taglibs.

Lorsqu’une JSP est demandée pour la première fois ou lorsque l’application Web démarre, le conteneur de servlets le comstackra dans une classe étendant HttpServlet et l’utilisera pendant toute 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 répertoire /work . Sur une requête JSP, le conteneur de servlets exécutera la classe JSP compilée et enverra la sortie générée (généralement uniquement HTML / CSS / JS) via le serveur Web via un réseau au côté client, qui l’affichera à son tour dans le navigateur Web.

Servlets

Servlet est une interface de programmation d’application (API) Java exécutée sur la machine serveur, qui intercepte les requêtes émises par le client et génère / envoie une réponse. Un exemple bien connu est le HttpServlet qui fournit des méthodes pour connecter des requêtes HTTP à l’aide des méthodes HTTP populaires telles que GET et POST . Vous pouvez configurer HttpServlet pour écouter un certain modèle d’URL HTTP, qui est configurable dans web.xml ou, plus récemment, avec Java EE 6 , avec l’annotation @WebServlet .

Lorsqu’un servlet est demandé 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 conserve en mémoire pendant 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 du servlet. Vous pouvez accéder aux données de requête par HttpServletRequest et gérer la réponse par HttpServletResponse . Les deux objects sont disponibles sous forme d’arguments de méthode dans l’une des méthodes remplacées de HttpServlet , telles que doGet() et doPost() .

JSF (JavaServer Faces)

JSF est un framework MVC basé sur des composants qui est basé sur l’API Servlet et fournit des composants via des taglibs qui peuvent être utilisés dans JSP ou toute autre technologie de vue basée sur Java telle que Facelets . Les facelets sont beaucoup plus adaptés à JSF qu’à JSP. Il fournit de grandes capacités de modélisation telles que les composants composites , tandis que JSP n’offre essentiellement que le pour la modélisation, de sorte que vous êtes obligé de créer des composants personnalisés avec du code Java brut (qui est un peu opaque et fastidieux) travailler dans JSF) lorsque vous souhaitez remplacer un groupe répété de composants par un seul composant. Depuis JSF 2.0, JSP est devenu obsolète en tant que technologie de visualisation en faveur de Facelets.

En tant que structure MVC ( Model-View-Controller ), JSF fournit le FacesServlet comme seul contrôleur de demande-réponse. Il prend en charge tout le travail standard et fastidieux de requêtes / réponses HTTP, comme la collecte des entrées utilisateur, la validation / conversion, la mise en objects du modèle, l’appel des actions et le rendu de la réponse. De cette façon, vous obtenez essentiellement une page JSP ou Facelets (XHTML) pour View et une classe JavaBean comme Model . Les composants JSF sont utilisés pour lier la vue au modèle (comme le fait votre contrôle Web ASP.NET) et FacesServlet utilise l’ arborescence des composants JSF pour effectuer tout le travail.

Questions connexes

  • Quelle est l’alternative Java principale à ASP.NET / PHP?
  • Développement Web Java EE, quelles compétences ai-je besoin?
  • Comment fonctionnent les servlets? Instanciation, variables de session et multithreading
  • Qu’est-ce qu’un Javabean et où sont-ils utilisés?
  • Comment éviter le code Java dans les fichiers JSP?
  • Quels composants MVC dans le framework JSF MVC?
  • Quel est le besoin de JSF, quand l’interface utilisateur peut être réalisée à partir de CSS, HTML, JavaScript, jQuery?

Voir http://www.oracle.com/technetwork/java/faq-137059.html

La technologie JSP fait partie de la famille de la technologie Java. Les pages JSP sont compilées dans des servlets et peuvent appeler des composants JavaBeans (beans) ou des composants Enterprise JavaBeans (beans enterprise) pour effectuer le traitement sur le serveur. La technologie JSP est donc un composant clé d’une architecture hautement évolutive pour les applications Web.

Voir https://jcp.org/en/introduction/faq

R: La technologie JavaServer Faces est une infrastructure permettant de créer des interfaces utilisateur pour les applications Web. La technologie JavaServer Faces comprend:

Un ensemble d’API pour: représenter les composants de l’interface utilisateur et gérer leur état, gérer les événements et la validation des entrées, définir la navigation dans les pages et prendre en charge l’internationalisation et l’accessibilité.

Une bibliothèque de balises personnalisées JSP (JavaServer Pages) pour exprimer une interface JavaServer Faces dans une page JSP.

JSP est un type de servlet spécialisé.

JSF est un ensemble de balises que vous pouvez utiliser avec JSP.

Du sharepoint vue du navigateur / client

JSP et JSF ont tous les deux la même apparence. JSP est plus adapté aux applications basées sur les requêtes.

JSF est destiné aux applications Web basées sur des événements plus riches. Je vois l’événement comme beaucoup plus granulaire que demande / réponse.

De la perspective du serveur

La page JSP est convertie en servlet et son comportement est minimal.

La page JSF est convertie en arborescence de composants (par FacesServlet spécialisé) et suit le cycle de vie des composants défini par spec.

Servlets:

L’API Java Servlet permet aux développeurs Java d’écrire du code côté serveur pour fournir du contenu Web dynamic. À l’instar d’autres API de serveurs Web propriétaires, l’API Java Servlet offrait des performances améliorées par rapport aux CGI. cependant, il présente des avantages supplémentaires clés. Comme les servlets étaient codés en Java, ils fournissent une approche de conception orientée object (OO) et, plus important, peuvent s’exécuter sur n’importe quelle plate-forme. Ainsi, le même code était portable pour tout hôte prenant en charge Java. Les servlets ont grandement consortingbué à la popularité de Java, car il est devenu une technologie largement utilisée pour le développement d’applications Web côté serveur.

JSP:

JSP est basé sur les servlets et fournit une solution simple, basée sur des pages, pour générer de grandes quantités de contenu HTML dynamic pour les interfaces utilisateur Web. JavaServer Pages permet aux développeurs et aux concepteurs Web de modifier simplement les pages HTML avec des balises spéciales pour les parties Java dynamics. JavaServer Pages fonctionne en ayant un servlet spécial appelé conteneur JSP, installé sur un serveur Web et gérant toutes les demandes de vue de page JSP. Le conteneur JSP traduit un JSP demandé en code de servlet qui est ensuite compilé et exécuté immédiatement. Les requêtes ultérieures à la même page invoquent simplement le servlet d’exécution de la page. Si une modification est apscope à la JSP sur le serveur, une demande de consultation la déclenche une autre traduction, compilation et redémarrage du servlet d’exécution.

JSF:

JavaServer Faces est un framework Java standard pour la création d’interfaces utilisateur pour les applications Web. Plus important encore, il simplifie le développement de l’interface utilisateur, qui constitue souvent l’une des parties les plus difficiles et fastidieuses du développement d’applications Web.
Bien qu’il soit possible de créer des interfaces utilisateur en utilisant des technologies Java Web fondamentales (telles que les servlets Java et JavaServer Pages) sans une structure complète conçue pour le développement d’applications Web d’entreprise, ces technologies peuvent souvent entraîner divers problèmes de développement et de maintenance. Plus important encore, au moment où les développeurs parviendront à une solution de qualité de production, le même ensemble de problèmes résolus par JSF aura été résolu de manière non standard. JavaServer Faces est conçu pour simplifier le développement d’interfaces utilisateur pour les applications Web Java des manières suivantes:
• Il fournit une approche de développement centrée sur les composants et indépendante du client pour créer des interfaces utilisateur Web, améliorant ainsi la productivité et la facilité d’utilisation des développeurs.
• Il simplifie l’access et la gestion des données d’application à partir de l’interface utilisateur Web.
• Il gère automatiquement l’état de l’interface utilisateur entre plusieurs requêtes et plusieurs clients de manière simple et discrète.
• Il fournit un cadre de développement convivial pour un public de développeurs diversifié avec des ensembles de compétences différents.
• Il décrit un ensemble standard de modèles d’architecture pour une application Web.

[ Source: Référence complète: JSF ]

Il existe également des situations où vous pouvez privilégier JSP par rapport à JSF. La nature de l’application devrait être le facteur décisif pour choisir la technologie.

Si vous avez une interaction graphique riche et que beaucoup de scripts Java sont nécessaires, privilégiez JSF. Fondamentalement, si l’architecture de votre application graphique est comme orientée composant et même pilotée comme Swing, JSF est le meilleur.

Si l’application est simplement une soumission simple, peu d’interaction avec l’interface graphique est nécessaire, alors JSP pourrait bien faire si l’apprentissage d’une nouvelle technologie est une surcharge et qu’une structure complexe est inutile.

Servlet – c’est la couche côté serveur java.

  • JSP – c’est Servlet avec HTML
  • JSF – la base de ses composants sur les librairies de tag
  • JSP – il est converti en servlet une fois lorsque le serveur a reçu une requête.

c’est vrai que JSP est converti en servlet au moment de l’exécution, et que JSF est totalement nouveau pour rendre la page Web plus lisible car JSF permet d’écrire toutes les structures de programmation sous forme de tag.

La différence fondamentale entre Servlets et JSP est que, dans Servlets, nous écrivons du code Java et que nous intégrons du code HTML et qu’il y a juste une casse inverse avec JSP. Dans JSP, nous écrivons du code HTML et nous incorporons du code Java à l’aide de balises fournies par JSP.

Java Server Pages (JSP) est une technologie Java qui permet aux développeurs et aux concepteurs Web de développer et de gérer rapidement des pages Web dynamics, riches en informations, qui exploitent les systèmes d’entreprise existants. La technologie JSP sépare l’interface utilisateur de la génération de contenu, permettant aux concepteurs de modifier la mise en page globale sans modifier le contenu dynamic sous-jacent.

Facelets est le premier langage de déclaration de page non JSP conçu pour JSF (Java Server Faces) qui fournit un modèle de programmation plus simple et plus puissant aux développeurs JSF par rapport à JSP. Il résout différents problèmes survenant dans JSP pour le développement d’applications Web.

Voici un tableau qui compare les fonctionnalités des scriplets et des facelets:

entrer la description de l'image ici La source

Jsp a également un code de servlet intégré qui ne nécessite aucune compilation externe, il peut être exécuté directement. Les modifications prendront effet dans jsp directement dans un navigateur.

Servlet doit être compilé (c.-à-d. Qu’il aura une création de classe spécifique)

Jsf est un composant d’affichage de MVC Framework

JSP signifie JAVA SERVER PAGE …….. jsp n’est pas un servlet. Jsp utilise du code et des balises HTML en soi, vous n’avez pas besoin de créer un HTML et une servlet. Jsp joue un rôle magnifique dans les applications Web. Servlet est une classe Java qui joue un rôle pour rendre votre page HTML statique à dynamic.

  1. JSF est une application Web utilisée pour simplifier l’intégration du développement des interfaces utilisateur Web. JSP est une technologie basée sur Java utilisée spécifiquement pour aider les développeurs de logiciels à créer des pages Web dynamics.

  2. JSF contient plusieurs fonctionnalités de base, y compris, mais sans s’y limiter, les beans gérés, un système de composants basé sur des modèles et deux bibliothèques de balises basées sur XML; JSP doit être compilé en Java bytecode pour fonctionner correctement.

Les JSP sont le composant View de MVC (Model View Controller). Le contrôleur prend la demande entrante et la transmet au modèle, qui peut être un bean ayant access à certaines bases de données. Le JSP formate ensuite la sortie en utilisant HTML, CSS et JavaScript, et la sortie est ensuite renvoyée au demandeur.

 JSP:means HTML+Java Code: 

JSP a son propre cycle de vie jsp_init () jsp_service () jsp_destroy

Après la première demande, convertir JSP en fichier .java. Il y a trois types de balises que nous utilisons
1.) Sans script

 <% %> 

Ici, le développeur peut déclarer toutes les choses que les développeurs veulent prendre les données

2.) tag d’expression

 <%= %> 

Ici, le développeur peut utiliser des données liées à l’impression

3.) Déclaration

  

Ici, le développeur peut déclarer des données liées à la méthode.

 Servlet: 

Servlet a son propre cycle de vie.

 init() service() destroy() 

Une fois que le conteneur de première requête aura lu les données du fichier web.xml, le remplissage de bienvenue sera affiché après la fin.
Maintenant, après avoir effectué une action, il recherchera l’url et après ce processus, il recherchera la servlet en question. opération de service effectuera.

 JSF: 

JSF a sa propre interface utilisateur et son cycle de vie peut fonctionner de six manières,

 A)Restore view phase B)Apply request values phase C)Process validations phase D)Update model values phase E)Invoke application phase F)Render response phase 

Pour l’interface utilisateur ici pour la table ici nous utilisons la grid de panneau et il y a différentes faces pour cela.

 Rich Faces Prime Faces. 

JSF est un framework avancé dans lequel il est très facile d’implémenter une architecture basée sur Model-View-Controller (MVC) pour les projets. Le principal avantage de JSF sur JSP est le rendu dynamic facile des composants sur le navigateur en fonction des conditions et de l’intégration facile des événements ajax.

Le frontal de l’application JSF, c’est-à-dire les fichiers xhtml, sont ceux qui sont affichés à l’utilisateur via un navigateur. Ces fichiers xhtml invoquent en interne des beans gérés, par exemple des contrôleurs dans lesquels une logique d’application réelle est écrite.

Les contrôleurs appellent en interne différents services qui communiquent avec la firebase database (à l’aide de l’API Hibernate ou JPA). Voilà comment le stream se produit en bref.

JSF est également utilisé en combinaison avec RichFaces, qui permet de donner une apparence riche à votre application Web.

JSF + RichFaces + Hibernate / JPA est une bonne technologie pour apprendre à coup sûr!