web-dev-qa-db-fra.com

Java EE vs JSP vs JSF

Je cherche à apprendre une technologie Java pour développer des applications Web. Au fur et à mesure que j'examinais cela, je suis devenu confus entre jsf , jsp , et javaee . Je sais qu'il y a plusieurs articles sur SO ( article 1 , article 2 ) qui essayer de résoudre ces confusions, j'en ai quelques-unes de plus:

  1. JSP est-il "mort" en faveur de JSF?
  2. Est Java EE la plate-forme JSF fonctionne au-dessus ou quelque chose de complètement différent?
  3. JSF est-il simplement un framework MVC pour développer des applications web?
  4. Est-ce que JSF est un framework développé par Oracle et fait partie de Java, ou est-ce un framework séparé (tout comme le Zend Framwork est de PHP)?
  5. [Bonus] Recommanderiez-vous d'apprendre jsp ou jsf ?

Dans votre réponse, n'hésitez pas à comparer l'une de ces technologies à des choses comme ASP.NET, ASP.NET MVC, Ruby on Rails, Zend Framework ou regular Java Applets, car ce sont des choses que je connais déjà.

Merci pour votre temps.

30
Oliver Spryn

JSP est-il "mort" en faveur de JSF?

JSF a d'innombrables avantages par rapport à JSP. Par exemple:

  • Il définit une approche MVC
  • Il a mis en place des normes de composants
  • Il a appliquer la fonction de valeurs
  • AJAX intégré
  • Un contrôle de contexte de vue défini
  • Permet des extensions d'interfaces riches comme Primefaces

Et nous pouvons continuer encore et encore.

Vous pouvez toujours utiliser JSP pour d'autres scénarios où vous avez besoin d'une flexibilité ou de performances spécifiques, et la même chose pour les servlets, mais JSF a pratiquement remplacé JSP pour les applications "robustes".

Maintenant, je suis un grand fan de JSF, mais il a un long chemin à parcourir. JSF 2.2 ressemble un peu à un framework mature maintenant qu'il a un standard de navigation défini ( FacesFlow ), et nous venons d'avoir un téléchargeur de fichiers intégré en 2.1 et ce n'est même pas AJAX, et il y a "HTML5", etc. Donc oui, il y a beaucoup plus de travail à faire que je ne détaillerai pas ici.

D'après mon expérience, JSP est en fait "mort" par rapport à JSF et à d'autres frameworks comme Spring MVC et autres. Java EE 7 ne dit presque rien sur JSP. Mais il n'est pas mort, car il est déjà pris en charge dans les conteneurs Web et vous pouvez toujours l'utiliser.

Est Java EE la plate-forme JSF fonctionne au-dessus ou quelque chose de complètement différent?

JSF fait partie de Java EE mais vous n'avez pas besoin du profil complet Java EE pour utiliser JSF. Exemples:

  • Tomcat est juste une implémentation de profil Web Java Java EE) et vous pouvez utiliser JSF dans Tomcat.
  • Vous pouvez utiliser JSF dans JBoss mais vous n'avez pas besoin que JMS soit activé pour que JSF fonctionne.

Les composants Java EE sont modulaires et vous n'avez besoin que d'un serveur/conteneur de profil Web pour utiliser JSF.

JSF est-il simplement un framework MVC pour développer des applications web?

Oui (mais je ne dirais pas simplement). Chacun a ses avantages et ses inconvénients. Mais le principe est le même.

On pourrait discuter de l'intégration avec EJB, mais il en va de même pour Spring MVC avec son propre conteneur.

Est-ce que JSF est un framework développé par Oracle et fait partie de Java, ou est-ce un framework complètement séparé (un peu comme le Zend Framwork est de PHP)?

Oracle délègue désormais aux équipes la définition des spécifications. En théorie, vous pouvez implémenter votre propre JSF si vous le souhaitez. Je ne connais pas le framework Zend de PHP.

Les implémentations JSF les plus courantes sont Mojarra et MyFaces. (Luiggi m'a battu à ce sujet en ce moment, vous pouvez vérifier ses liens).

[Bonus] Recommanderiez-vous d'apprendre jsp ou jsf?

Je recommanderais les deux. JSP d'abord et JSF après.

Mais je vous recommanderais à 100% d'utiliser JSF pour vos projets. Mais assurez-vous de comprendre la composanteisation et tout ce qui fait de JSF un outil puissant.

Consultez également nouvelles fonctionnalités JSF 2.2 , cette page est géniale pour une introduction sur les dernières fonctionnalités ajoutées au framework.

32
Evandro Pomatti

JSP est-il "mort" en faveur de JSF?

Non, il est toujours maintenu pour les applications Web existantes et actuelles en tant que technologie d'affichage. En outre, JSF fonctionne avec JSP comme vue, mais depuis JSF 2, il est préférable d'utiliser Facelets comme vue technologique. Les raisons sont expliquées ici: Pourquoi Facelets est préféré à JSP comme langage de définition de vue à partir de JSF2.0? . En bref, Facelets prend en charge le pré et le post-traitement du contenu à restituer, contrairement à JSP.

Est Java EE la plate-forme JSF fonctionne au-dessus ou quelque chose de complètement différent?

JSF peut fonctionner par lui-même dans n'importe quel Java. Il vous suffit d'ajouter les bibliothèques nécessaires: JSF-api et JSF-impl.

JSF est-il simplement un framework MVC pour développer des applications web?

Oui. Il ne fournit aucune aide pour la génération de services Web, le regroupement de connexions, la gestion des transactions, etc. Il prend en charge l'injection d'EJB via @EJB et injection de paramètres via @ManagedProperty, mais c'est tout. Vous pouvez utiliser d'autres frameworks pour faire le travail: Hibernate, EJB, Spring, CDI, etc.

Est-ce que JSF est un framework développé par Oracle et fait partie de Java, ou est-ce un framework complètement séparé (un peu comme le Zend Framwork est de PHP)?

JSF est supporté par JSR 344 . Cette spécification est prise en charge par le Java Community Process , qui est pris en charge par Oracle. Vous pouvez en déduire qu'au moins Oracle fournit une implémentation pour JSF. Étant donné que JSF est une spécification, elle peut également être mise en œuvre par d'autres organisations. Actuellement, il existe une autre implémentation pour JSF, MyFaces .

Recommanderiez-vous d'apprendre jsp ou jsf ?

C'est comme demander dois-je apprendre à créer du HTML ou à utiliser un ensemble de bibliothèques qui va créer du HTML pour moi? . JSP est une technologie conçue pour l'affichage des applications Web qui prend en charge le contenu dynamique en utilisant la technologie Java. JSF est un framework MVC qui vous aide à faciliter la génération du contenu en vue (JSP ou Facelets) et la liaison de données via la vue, le contrôleur et le modèle. Vous pouvez apprendre les deux en même temps, et je vous recommande d'apprendre ce que vous utilisez actuellement ou ce que vous allez utiliser. IMO vous devez apprendre les deux: JSF à développer Applications JSF et JSP pour travailler avec d'autres frameworks MVC ou pour maintenir les applications héritées actuelles construites avec JSP.

14
Luiggi Mendoza

1.JSP est-il "mort" en faveur de JSF?

Dans le domaine de Java EE JSP est annoncé "obsolète". Dans un monde plus large, il est bien vivant.

2.Est Java EE la plate-forme JSF fonctionne au-dessus ou quelque chose de complètement différent?

Dépend de l'endroit où se trouve le "haut". Les servlets sont le sous-sol de la plupart des frameworks Java, y compris JSF.

3. JSF est-il simplement un framework MVC pour développer des applications web?

Oui, c'est le sens que JSF est un couche de présentation framework.

4. Est-ce que JSF est un framework développé par Oracle et une partie de Java, ou est-ce un framework séparé (tout comme le Zend Framwork est de PHP)?

JSF est une partie officielle de Java EE 7 par Oracle.

5. [Bonus] Recommanderiez-vous d'apprendre jsp ou jsf?

Les deux, jusqu'à une certaine profondeur. Considérez également HybridJava - c'est le même puissant que JSF mais environ deux fois plus simple.

3
Dima