如何在 servlet 3.0 的 web.xml-less 中定义<欢迎文件列表>和<错误页面>?

2022-09-01 10:47:19

我有现有的web应用程序,我想将其转换为无web.xml的servlet的3.0。我已经设法使它工作,但是Web中有2个标签.xml我仍然不知道Web.xml环境中的等效代码。

<welcome-file-list>
    <welcome-file>/index.jsp</welcome-file>
</welcome-file-list>

<error-page>
    <error-code>404</error-code>
    <location>/pageNotFound</location>
</error-page>

任何帮助是值得赞赏的


答案 1

在Servlets 3.0中,你不需要web.xml在许多情况下,但是,有时它是必需的或只是有用的。您的案例只是其中之一 - 没有特殊的注释来定义欢迎文件列表或错误页面。

另一件事是 - 你真的想让它们硬编码吗?基于注释/编程的配置以及 XML 中的声明性配置有一些有效的用例。迁移到 Servlets 3.0 并不一定意味着不惜一切代价摆脱 web.xml。

我会发现您发布的条目是XML中配置的更好示例。首先 - 它们可以从一个部署到另一个部署进行更改,其次 - 它们影响整个应用程序,而不是任何特定的Servlet。


答案 2

对于模拟欢迎页面列表,请将其放入

@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");
    }
...
}

推荐