我在 Tomcat 中运行一个 Spring boot 应用程序(请不要问 :))并且我有一些 URL 需要映射到/[a-z]*.jsp(同样是客户要求)。
当在 Tomcat 中运行应用程序时,JspServlet 类存在并自动配置为处理以 .jsp 结尾的所有内容。如何禁用此自动配置?
谢谢。
最佳答案
作为M. Deinum说,JspServlet
没有被我的 Spring Boot 应用程序注册,而是 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
中,尽管我不确定是否有必要。
关于java - Spring Boot JspServlet 自动配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54654790/