Spring Boot JspServlet自动配置

时间:2019-02-12 16:39:18

标签: java spring spring-boot tomcat

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

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

谢谢。

1 个答案:

答案 0 :(得分:0)

正如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中,尽管我不确定这是否有必要。