0

为 JSPServlet 设置配置选项(如 checkInterval、keepgenerated、modificationTestInterval 等)的首选方法是什么?我试图改变它的原因是因为 JSP 编译的一些奇怪问题。我们正在使用可执行的战争打包并将“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。

4

2 回答 2

2

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

例如:

server.jsp-servlet.init-parameters.modificationTestInterval=10
于 2017-08-11T16:47:29.933 回答
1

您可以使用 anEmbeddedServletContainerCustomizer @Bean来查找 JSP servlet 并配置其初始化参数。例如,在您的主要@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");
                }
            });
        }
    };
}
于 2015-03-05T11:45:10.637 回答