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