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


Comment JSP et Servlet sont liés les uns aux autres? JSP est une sorte de Servlet? Comment JSP et JSF sont-elles liées les unes aux autres? JSF est-il une sorte de JSP basé sur l'interface utilisateur de prebuild comme ASP.NET-MVC?


731
2018-01-19 17:15


origine


Réponses:


JSP (JavaServer Pages)

JSP est un Technologie de vue Java en cours d'exécution sur la machine serveur qui vous permet d'écrire du texte de modèle dans les langages côté client (comme HTML, CSS, JavaScript, ect.). JSP prend en charge taglibs, qui sont soutenus par des morceaux de code Java qui vous permettent de contrôler le flux de la page ou de produire dynamiquement. Un taglib bien connu est JSTL. JSP prend également en charge Expression Language, qui peut être utilisé pour accéder aux données backend (via les attributs disponibles dans la page, la requête, la session et les applications), principalement en combinaison avec taglibs.

Lorsqu'un JSP est demandé pour la première fois ou lorsque l'application Web démarre, le conteneur de servlet le compilera dans une classe 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 Matou, C'est le /work annuaire. Sur une requête JSP, le conteneur de servlet exécutera la classe JSP compilée et enverra la sortie générée (généralement HTML / CSS / JS) via le serveur Web via un réseau au client, qui l'affichera dans le navigateur Web.

Servlets

Servlet est un Interface de programmation d'application Java (API) s'exécutant sur la machine serveur, qui intercepte les requêtes effectuées 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 HTTP demandes en utilisant le populaire Méthodes HTTP tel que GET et POST. Vous pouvez configurer HttpServlets pour écouter un certain modèle d'URL HTTP, configurable dans web.xml, ou plus récemment avec Java EE 6, avec @WebServlet annotation.

Lorsqu'une servlet est demandée pour la première fois ou lors du démarrage de l'application web, le conteneur servlet crée une instance de celui-ci et la garde 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 la requête en HttpServletRequest et gérer la réponse par HttpServletResponse. Les deux objets sont disponibles en tant qu'arguments de méthode dans l'une des méthodes substituées de HttpServlet, tel que doGet() et doPost().

JSF (JavaServer Faces)

JSF est un cadre MVC basé sur les composants qui est construit au-dessus de l'API Servlet et fournit Composants via taglibs qui peuvent être utilisés dans JSP ou toute autre technologie de visualisation basée sur Java tels que Facelets. Facelets est beaucoup plus adapté à JSF que JSP. Cela fournit beaucoup capacités de modélisation tel que composants composites, tandis que JSP ne propose essentiellement que la <jsp:include> pour les modèles, de sorte que vous êtes obligé de créer des composants personnalisés avec du code Java brut (qui est un peu opaque et un travail fastidieux dans JSF) 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 visualisation en faveur de Facelets.

Comme étant un MVC (Modèle Vue Contrôleur), JSF fournit le FacesServlet comme seule demande-réponse Manette. Cela prend tout le travail de requête / réponse HTTP standard et fastidieux de vos mains, comme la collecte de données utilisateur, leur validation / conversion, leur insertion dans des objets modèles, l'invocation d'actions et le rendu de la réponse. De cette façon, vous finissez avec une page JSP ou Facelets (XHTML) pour Vue et une classe JavaBean comme Modèle. Les composants JSF sont utilisés pour lier la vue avec le modèle (comme le fait votre contrôle Web ASP.NET) et FacesServlet utilise le Arbre des composants JSF faire tout le travail.

Questions connexes


1107
2018-01-19 22:39



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

La technologie JSP fait partie de Java   famille de la technologie. Les pages JSP sont   compilé en servlets et peut appeler   Composants JavaBeans (beans) ou   Composants Enterprise JavaBeans   (enterprise beans) à effectuer   traitement sur le serveur. En tant que tel, JSP   la technologie est un élément clé dans un   architecture hautement évolutive pour   applications Web.

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

R: La technologie JavaServer Faces est un   cadre pour la construction d'interfaces utilisateur   pour les applications web. JavaServer Faces   La technologie comprend:

Un ensemble d'API pour: représenter l'interface utilisateur   composants et gérer leur état,   la gestion des événements et la validation des entrées,   définir la navigation de la page, et   soutenir l'internationalisation et   accessibilité.

Un tag personnalisé JavaServer Pages (JSP)   bibliothèque pour l'expression d'un JavaServer   Interface de visages dans une page JSP.

JSP est un genre spécialisé de servlet.

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


69
2018-01-19 17:28



Du point de vue du navigateur / du client

JSP et JSF ont tous les deux la même apparence. Selon les exigences de l'application, JSP est plus adapté aux applications basées sur les requêtes.

JSF est ciblé pour les applications Web basées sur des événements plus riches. Je vois l'événement d'autant plus granulaire que demande / réponse.

Du point de vue du serveur

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

La page JSF est convertie en arbre de composants (par un serveur spécialisé FacesServlet) et suit le cycle de vie du composant défini par spec.


27
2018-04-06 16:24



Servlets: 

L'API Java Servlet permet aux développeurs Java d'écrire du code côté serveur   pour fournir du contenu Web dynamique. Comme les autres serveurs Web propriétaires   API, l'API Java Servlet offre des performances améliorées par rapport à CGI;   Cependant, il a quelques avantages supplémentaires clés. Parce que les servlets étaient   codé en Java, ils fournissent une approche de conception orientée objet (OO)   et, plus important, sont capables de fonctionner sur n'importe quelle plate-forme. Ainsi, le même   le code était portable pour tout hôte prenant en charge Java. Servlets grandement   contribué à la popularité de Java, car il est devenu un très utilisé   technologie pour le développement d'applications Web côté serveur.

JSP:

JSP est construit sur le dessus des servlets et fournit une page plus simple   solution pour générer de grandes quantités de contenu HTML dynamique pour le Web   Les interfaces des utilisateurs. JavaServer Pages permet aux développeurs et concepteurs Web   pour éditer simplement des pages HTML avec des tags spéciaux pour la dynamique, Java   portions. JavaServer Pages fonctionne en ayant une servlet spéciale appelée   un conteneur JSP, qui est installé sur un serveur Web et gère tous les   Requêtes d'affichage de page JSP. Le conteneur JSP traduit une demande   JSP dans le code de servlet qui est ensuite compilé et immédiatement exécuté.   Les requêtes suivantes sur la même page appellent simplement le servlet d'exécution   pour la page. Si une modification est apportée au JSP sur le serveur, une requête   pour le voir déclenche une autre traduction, compilation et redémarrage de   la servlet d'exécution.

JSF: 

JavaServer Faces est un framework Java standard pour la création d'utilisateurs   interfaces pour les applications Web. Le plus important est de simplifier   développement de l'interface utilisateur, qui est souvent l'un des plus   parties difficiles et fastidieuses du développement d'applications Web.
  Bien qu'il soit possible de créer des interfaces utilisateur à l'aide de   Technologies Web Java (telles que les servlets Java et les pages JavaServer)   sans un cadre complet conçu pour le Web d'entreprise   développement d'applications, ces technologies de base peuvent souvent conduire à   variété de problèmes de développement et de maintenance. Plus important, en   le temps que les développeurs atteignent une solution de qualité de production, le   le même ensemble de problèmes résolus par JSF aura été résolu dans un   manière non standard. JavaServer Faces est conçu pour simplifier   développement d'interfaces utilisateur pour les applications Web Java dans   façons suivantes:
  • Il fournit un composant centré,   approche de développement indépendante du client pour créer un internaute   interfaces, améliorant ainsi la productivité des développeurs et la facilité d'utilisation.
  • Il simplifie l'accès et la gestion des données d'application de la   Interface utilisateur Web
  • Il gère automatiquement l'interface utilisateur   état entre plusieurs demandes et plusieurs clients dans un simple et   manière discrète.
  • Il fournit un cadre de développement qui est   amical à un public de développeur diversifié avec différents ensembles de compétences.
  • Il décrit un ensemble standard de modèles architecturaux pour un web   application.

[ La source : Référence complète: JSF ]


18
2017-07-31 06:48



Il existe également des situations où vous pouvez favoriser JSP sur JSF. La nature de l'application devrait être le facteur décisif pour choisir la technologie.

Si vous avez une interaction GUI riche et beaucoup de scripts Java nécessaires, alors favorisez JSF. Fondamentalement, si votre architecture d'application graphique est comme orientée vers les composants et même comme Swing, alors JSF est le meilleur.

Si l'application est simplement un formulaire simple, pas beaucoup d'interaction GUI nécessaire, alors JSP pourrait bien faire si l'apprentissage d'une nouvelle technologie est une surcharge et un cadre complexe est inutile.


14
2018-06-20 07:59



Servlet - c'est la couche côté serveur Java.

  • JSP - c'est Servlet avec html
  • JSF - ses composants sont basés sur des bibliothèques de balises
  • JSP - il est converti en servlet une fois quand le serveur a reçu la requête.

12
2018-05-14 21:38



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


9
2018-02-23 06:21



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 un cas inverse avec JSP. Dans JSP, nous écrivons du code HTML et nous intégrons du code java en utilisant des balises fournies par JSP.


4
2017-11-30 09:10



Pages Java Server (JSP) est la technologie java qui permet aux développeurs et concepteurs Web de développer rapidement et de maintenir facilement des pages Web dynamiques et 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 altérer le contenu dynamique sous-jacent.

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

Voici un tableau qui compare les caractéristiques des scriplets et des facelets:

enter image description here La source


3
2017-12-24 11:17