sirve servlet que pattern para examples example ejemplo configurar java servlets web.xml

que - ¿Realmente necesito web.xml para una aplicación web Java basada en servlets?



servlet mapping url pattern examples (7)

A partir de Servlet 3, no se requiere web.xml. Querrá usar algo como Tomcat 7 u 8 (mejor opción). Para servlets sin procesar, este es un buen punto de partida .

Si quieres usar Spring moderno, Grails 3 es una excelente forma de hacerlo. De parte a lado todos estos problemas y Grails es un marco muy productivo para el desarrollo web. Puedes pensar en Ruby on Rails construido sobre Spring e Hibernate.

En este punto, no debería tener que escribir ningún web.xml para configurarlo a menos que use un marco que lo necesite. No sé sobre spring mvc, pero Grails no requiere que hagas eso y usa la mayoría de lo que ya estás acostumbrado a usar.

No he estado trabajando en proyectos web del mundo real. En la universidad usamos tanto Servlets como Spring para el desarrollo web de Java. En ambos proyectos, recibimos archivos web.xml ya configurados y solo realizamos cambios menores en ellos. Ahora necesito construir una aplicación web desde cero. Creé una nueva clase Servlet en Eclipse y no creó automáticamente ningún web.xml. Luego busqué en Google, y leí de varios recursos que web.xml no es realmente necesario, pero ese razonamiento se puso en par de frases, por lo que no estoy seguro de si usar anotaciones en lugar de web.xml no será ningún problema. Estaré muy contento si no hay necesidad de configurar web.xml, porque no configuré uno solo y quiero enfocarme más en la lógica comercial.

¡Gracias de antemano!


No, no habrá necesidad de web.xml para la servlet based application si está utilizando servlet versión >3.0 y tomcat 7 ya que no se ejecutará en las versiones anteriores de tomcat.

La anotación representa los metadatos. Si usa la anotación, no se requiere el descriptor de implementación (archivo web.xml). Eche un vistazo Here para ver todas las anotaciones disponibles.


Otra forma (primavera 3.1+) -

Una implementación de clase base abstracta de WebApplicationInitializer denominada AbstractDispatcherServletInitializer hace que sea aún más fácil registrar el DispatcherServlet simplemente redefiniendo los métodos para especificar la asignación de servlet y la ubicación de la configuración 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[] { "/" }; } }


Si necesita o no web.xml depende de qué especificación de servlet reclame en su aplicación. Si va a crear una aplicación con la especificación 3.0, puede usar anotaciones para declarar sus servlets y desplegarlo en un contenedor sin necesidad de un archivo web.xml. Esto fue hecho como parte de JSR-315 .


Use Spring Boot, que administrará el contenedor y toda la configuración repetitiva para usted. Puede generar un esqueleto listo para el lanzamiento con Initializr .


No necesita un archivo web.xml si tiene un contenedor que admita las últimas especificaciones j2ee. Here hay un enlace a un ejemplo de servlet simple que usa una anotación y here puede encontrar lo mismo para Spring MVC; Publiqué el ejemplo aquí para su conveniencia

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/*"); } }

Here hay otro enlace que muestra cómo usar las otras anotaciones disponibles (@ServletFilter, @WebServletContextListener); Puede descargar el formulario de especificaciones here para obtener una vista más detallada de las anotaciones disponibles a través de j2ee.


<build> <finalName>yourapp</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.5</version> <configuration> <failOnMissingWebXml>false</failOnMissingWebXml> </configuration> </plugin> </plugins> </build>

En pom.xml, el código repetitivo evita que Maven arroje un error porque no hay un archivo web.xml. Se requiere un archivo web.xml en aplicaciones web Java; sin embargo, desde la especificación Servlet 3.0 (implementada en Tomcat 7 y versiones superiores), ya no es necesaria.