Bonjour,

je m'adresse à vous car j'ai besoin d'éclaircissements concernant la relation Java-Eclipse-Tomcat avec quelques questions précises en tête, mais certaines choses restent floues.

Pour info : j'ai appris à développer en Java dans un environnement complètement Oracle : NetBeans/Glassfish. Le passage à Eclipse n'est pas forcément trivial car NetBeans apporte une certaine facilité pour la prise en main d'outils/concepts comme le JNDI dont j'ai grand besoin.
Dans Glassfish, on peut créer des Ressources et des Pools de connexion pour les bases de données au travers d'une interface graphique. Comme Glassfish v4 est un peu capricieux, j'ai une "Ereur 500 internal error" à chaque fois que je souhaite déclarer une ressource, d'où le fait que je sois passé sur Tomcat 8. Mais ce dernier ne fonctionne pas avec une interface graphique.
Je dois donc paramétrer mon application avec : Server.xml, Context.xml, Web.xml (une bonne occasion d'apprendre). J'ai passé pas mal de temps sur le site Apache sur ce point précis.

J'ai un projet de réseau social en cours actuellement intégrant : pages web dynamiques (MVC), JPA, Maven.
Environnement : Eclipse Luna + Win10 + Tomcat 8 + MySQL 5.7 + EclipseLink 2.5.2 + JRE/JDK 1.8.0_66

Cette application aura accès à la DB (via une classe 'LayerDAO' en charge des opérations de persistence) et pourra envoyer des mails aux utilisateurs.

Toutes ces ressources (DB, Session mail) doivent être déclarées dans les fichiers de configuration de Tomcat ci-dessus.
-> à la lecture du site d'Apache, je crois comprendre que le Web.xml n'est plus très utile. Il est recommandé de continuer à l'utiliser à des fins de documentation des besoins en ressources de l'application.

Pour le moment, je développe et teste l'application en local avec du Drop&Create pour la DB. A terme, cette application devra tourner sans avoir recours à une méthode Main. Or c'est dans ma méthode Main que j'instancie ma couche DAO que je passe en paramètre aux classes "métier" qui effectuent les traitements sur les données.

Question - Comment m'assurer que le serveur va créer un objet DAO unique dans son Container et ne pas le dupliquer à chaque appel de ses méthodes ?
Question - En théorie, je devrais instancier un objet "Context" (singleton) à partir duquel tous mes objets devraient être créés, mais comment faire pour récupérer ce "Context" initial et le transmettre à toutes mes classes ?

Pour ce qui est des servlets, je n'en ai qu'une actuellement. Elle doit être la servlet "d'aiguillage" qui orientera les requêtes vers les servlets adaptées en fonction de ce qui se trouve dans la Request Parameter (conformément au principe du MVC)
Actuellement, je n'utilise pas le Web.xml pour y déclarer les servlets, mais l'annotation @WebServlet.

Question - Existe-t-il un moyen de lister les servlets connues (grâce à l'annotation @WebServlet) en interrogeant directement le pool de ressources JNDI via un "Lookup" ?

Voilà pour mes questions. Je suis d'avance désolé pour leur généralité ou leur imprécision.