Je n'ai pas travaillé sur des projets Web réels. À l'université, nous avons utilisé à la fois des servlets et Spring pour Java développement Web. Dans les deux projets, nous avons reçu des fichiers web.xml déjà configurés et nous n'y apportions que des modifications mineures. Maintenant, je dois créer un application Web à partir de zéro. J'ai créé une nouvelle classe de servlet dans Eclipse et il n'a pas créé automatiquement de web.xml. Ensuite, j'ai googlé, et j'ai lu sur plusieurs ressources que web.xml n'est pas vraiment nécessaire, mais que le raisonnement a été mis en quelques phrases, donc je ne sais pas si utiliser des annotations au lieu de web.xml ne sera pas un problème. Je serai vraiment content s'il n'y a pas besoin de configurer web.xml, car je n'en ai pas configuré moi-même et je veux de se concentrer davantage sur la logique métier.
Merci d'avance!
Vous n'avez pas besoin d'un web.xml
fichier si vous avez un conteneur qui prend en charge les dernières spécifications j2ee. Ici est un lien vers un exemple de servlet simple qui utilise une annotation et ici vous pouvez trouver la même chose pour Spring MVC; Je poste l'exemple ici pour votre commodité
public class MyWebApplicationInitializer implements WebApplicationInitializer {
@Override
public void onStartup(ServletContext container) {
ServletRegistration.Dynamic registration = container.addServlet("dispatcher", new DispatcherServlet());
registration.setLoadOnStartup(1);
registration.addMapping("/example/*");
}
}
ici est un autre lien qui montre comment utiliser les autres annotations disponibles (@ServletFilter, @WebServletContextListener); vous pouvez télécharger le formulaire de spécifications ici afin d'avoir une vue plus détaillée des annotations disponibles via j2ee.
À partir de Servlet 3, aucun fichier web.xml n'est requis. Vous allez vouloir utiliser quelque chose comme Tomcat 7 ou 8 (meilleur choix). Pour les servlets bruts c'est un bon point de départ .
Si vous souhaitez utiliser Spring moderne, Grails 3 est une excellente façon de procéder. Il fait face à toutes ces questions et Grails est un cadre très productif pour le développement Web. Vous pouvez le considérer comme Ruby on Rails construit sur Spring et Hibernate).
À ce stade, vous ne devriez pas avoir à écrire de fichier web.xml pour la configuration, sauf si vous utilisez un framework qui en a besoin. Je ne connais pas le printemps mvc, mais Grails ne vous oblige pas à le faire et il utilise la plupart de ce que vous avez déjà l'habitude d'utiliser.
Une autre façon (Spring 3.1+) -
Une implémentation de classe de base abstraite de WebApplicationInitializer
nommée AbstractDispatcherServletInitializer
facilite encore plus l'enregistrement du DispatcherServlet en remplaçant simplement les méthodes pour spécifier le mappage de servlet et l'emplacement de la configuration de DispatcherServlet -
public class MyWebAppInitializer extends AbstractDispatcherServletInitializer {
@Override
protected WebApplicationContext createRootApplicationContext() {
return null;
}
@Override
protected WebApplicationContext createServletApplicationContext() {
XmlWebApplicationContext cxt = new XmlWebApplicationContext();
cxt.setConfigLocation("/WEB-INF/spring/dispatcher-config.xml");
return cxt;
}
@Override
protected String[] getServletMappings() {
return new String[] { "/" };
}
}
Que vous ayez besoin de web.xml ou non dépend de la spécification de servlet que vous revendiquez dans votre application. Si vous créez une application à l'aide de la spécification 3.0, vous pouvez utiliser des annotations pour déclarer vos servlets et la déployer dans un conteneur sans avoir besoin d'un fichier web.xml. Cela a été fait dans le cadre de JSR-315 .
Ici, j'ai trouvé un exemple d'application Web sans utiliser le fichier descripteur de déploiement (web.xml). Le seul point à considérer ici est que cela fonctionnera avec les dernières versions de Tomcat> = 7.0
Visitez http://Java-demos.blogspot.com/2014/01/servlet-web-application-without-webxml.html
Visitez https://www.baeldung.com/Java-web-app-without-web-xml
Utilisez Spring Boot, qui gérera le conteneur et toute la configuration du passe-partout pour vous. Vous pouvez générer un squelette prêt à être lancé avec Initializr .
Non, il n'y aura pas besoin de web.xml
pour servlet based application
si vous utilisez la version de servlet >3.0
et Tomcat 7
car il ne fonctionnera pas dans les versions précédentes de Tomcat.
L'annotation représente les métadonnées. Si vous utilisez une annotation, le descripteur de déploiement (fichier web.xml) n'est pas requis. Jetez un œil ici pour toutes les annotations disponibles.