SpringBoot嵌入式Tomcat JSPServlet选项

时间:2015-03-04 19:37:37

标签: jsp spring-boot embedded-tomcat-8

为JSPServlet设置配置选项的首选方法是什么,如checkInterval,keepgenerated,modificationTestInterval等?我试图改变它的原因是因为JSP Compilations存在一些奇怪的问题。我们使用可执行的war包装并将'server.tomcat.basedir'属性设置为指向本地可访问的文件夹。生成的jsp java源代码和类文件显示修改日期为1970年1月14日。在Windows资源管理器中,修改只显示为空。在linux上,我们对所有文件进行了触摸。但是一旦再次访问jsp文件,修改日期就会回溯到1970年。我们怀疑这会导致每次访问jsp文件时都会编译它们,从而减慢了速度。但是重新编译似乎只发生在linux环境中。有没有人遇到过这个问题?我们的环境:Spring Boot 1.2.2.BUILD-SNAPSHOT,Tomcat 8,JDK 1.8_025。

2 个答案:

答案 0 :(得分:1)

您可以使用EmbeddedServletContainerCustomizer @Bean查找JSP servlet并配置其init参数。例如,在您的主@Configuration课程中:

@Bean
public EmbeddedServletContainerCustomizer customizer() {
    return new EmbeddedServletContainerCustomizer() {

        @Override
        public void customize(ConfigurableEmbeddedServletContainer container) {
            if (container instanceof TomcatEmbeddedServletContainerFactory) {
                customizeTomcat((TomcatEmbeddedServletContainerFactory) container);
            }
        }

        private void customizeTomcat(TomcatEmbeddedServletContainerFactory tomcat) {
            tomcat.addContextCustomizers(new TomcatContextCustomizer() {

                @Override
                public void customize(Context context) {
                    Wrapper jsp = (Wrapper) context.findChild("jsp");
                    jsp.addInitParameter("modificationTestInterval", "10");
                }
            });
        }
    };
}

答案 1 :(得分:0)

或者您可以将参数添加到application.properties文件中,如下所述: https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html 寻找:
    server.jsp-servlet.init-parameters。* =#用于配置JSP servlet的Init参数

例如:

server.jsp-servlet.init-parameters.modificationTestInterval=10