我在Tomcat中运行一个Spring Boot应用程序(不要问:)),我有一些URL需要映射到/ [a-z] *。jsp(同样,客户要求)。

在Tomcat中运行应用程序时,将存在JspServlet类,并将其自动配置为处理以.jsp结尾的所有内容。如何禁用此自动配置?

谢谢。

最佳答案

正如M. Deinum所说,我的Spring Boot应用程序未注册JspServlet,而是Tomcat的默认web.xml中存在的默认JspServlet处理该请求。添加以下bean为我解决了这个问题:

@Autowired
private DispatcherServlet dispatcherServlet;

@Bean
public ServletRegistrationBean servletRegistrationBean() {
    // Necessary so that JSPs don't get handled by the default JspServlet present in the default web.xml
    return new ServletRegistrationBean(dispatcherServlet, "/", "*.jsp");
}


另外,我设定

server.servlet.jsp.registered=false

在application.properties中,尽管我不确定这是否必要。

09-05 20:43