¿Cómo definir y en servlet 3.0’s web.xml-less?

Tengo una aplicación web existente que quiero convertir en web.xml-less de servlet’s 3.0. Logré hacerlo funcionar, sin embargo, hay 2 tags en web.xml que todavía no conozco el código equivalente en el entorno web.xml-less.

 /index.jsp   404 /pageNotFound  

Cualquier ayuda es apreciada

En Servlets 3.0 no necesita un web.xml para muchos casos, sin embargo, a veces es necesario o simplemente útil. Su caso es solo uno de ellos: no hay anotaciones especiales para definir la lista de archivos de bienvenida o páginas de error.

Otra cosa es: ¿realmente te gustaría tenerlos codificados? Hay algunos casos de uso válidos para la configuración basada en anotaciones / progtwigción y para la configuración declarativa en XML. Mudarse a Servlets 3.0 no significa necesariamente deshacerse de web.xml a toda costa.

Encontraría las entradas que publicaste un mejor ejemplo de configuración en XML. En primer lugar, pueden cambiarse de implementación a implementación y, en segundo lugar, afectan a toda la aplicación y no a ningún Servlet en particular.

Para la página de bienvenida análoga, coloque esto en

 @EnableWebMvc @Configuration @ComponentScan("com.springapp.mvc") public class MvcConfig extends WebMvcConfigurerAdapter { ... @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/*.html").addResourceLocations("/WEB-INF/pages/"); } @Override public void addViewControllers(ViewControllerRegistry registry) { registry.addViewController("/").setViewName("forward:/index.html"); } ... } 

En Spring Boot o en la aplicación Spring MVC general para el siguiente escenario:

Los archivos estáticos se pueden servir desde ubicaciones registradas con ResourceHandlerRegistry personalizado. Tenemos un recurso estático index.html y se puede acceder a localhost: 8080 / index.html . Queremos simplemente redirigir localhost: 8080 / request a localhost: 8080 / index.html , se puede usar el siguiente código.

 package in.geekmj.config; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; @Configuration @EnableWebMvc public class WebConfiguration extends WebMvcConfigurerAdapter { private static final String[] CLASSPATH_RESOURCE_LOCATIONS = { "classpath:/META-INF/resources/", "classpath:/resources/", "classpath:/static/", "classpath:/public/" }; @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/**").addResourceLocations(CLASSPATH_RESOURCE_LOCATIONS); } @Override public void addViewControllers(ViewControllerRegistry registry) { registry.addRedirectViewController("/", "/index.html"); } } 

Ahora accediendo a localhost: 8080 / se redirigirá a localhost: 8080 / index.html