Tomcat web应用程序能否以编程方式更改jsp servlet';s";“发展=真实”;参数

Tomcat web应用程序能否以编程方式更改jsp servlet';s";“发展=真实”;参数,jsp,tomcat,Jsp,Tomcat,我指的是Tomcat的web.xml文件的以下参数: <servlet> <servlet-name>jsp</servlet-name> <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class> . . . <init-param> <param-name>developme

我指的是Tomcat的
web.xml
文件的以下参数:

<servlet>
    <servlet-name>jsp</servlet-name>
    <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
         . . . 
    <init-param>
        <param-name>development</param-name>
        <param-value>true</param-value>
    </init-param>
         . . . 
</servlet>

jsp
org.apache.jasper.servlet.JspServlet
. . . 
发展
真的
. . . 
web应用程序是否有办法通过编程方式切换该值(如果不是所有web应用程序,至少为其自身切换),以便在运行的web服务器上临时更改该值,而无需停止并重新启动Tomcat

如果做不到这一点,是否有一种方法可以强制单个JSP重新编译,而不必等待可能需要的几分钟时间?我知道,如果您更改JSP,它最终(在几分钟内)将被编译,但我正在寻找一种方式来表示,“在下一次访问时,重新编译它。”


注意:需要重新启动web应用程序或导致web应用程序重新启动或容器重新启动的解决方案对我没有帮助。当我可以重新启动Tomcat时,我已经知道如何(手动)执行此操作。我试图做的是在生产环境中的Tomcat实例上临时将“development”值从false切换为true,我无法中断当前会话。

据我所知,如果修改web应用的web.xml,容器(Tomcat)将自动重新启动。此外,web.xml中的参数值只能通过编程方式读取

如果要立即重新编译JSP,只需请求该JSP的URL,或将JSP的默认ModificationTestInterval更改为0秒:

        <init-param>
            <param-name>modificationTestInterval</param-name>
            <param-value>0</param-value>
        </init-param>
        <init-param>
            <param-name>development</param-name>
            <param-value>true</param-value>
        </init-param>

改良睾丸间期
0
发展
真的

。希望这有帮助。

据我所知,如果修改web应用程序的web.xml,容器(tomcat)将自动重新启动。此外,web.xml中的参数值只能通过编程方式读取

如果要立即重新编译JSP,只需请求该JSP的URL,或将JSP的默认ModificationTestInterval更改为0秒:

        <init-param>
            <param-name>modificationTestInterval</param-name>
            <param-value>0</param-value>
        </init-param>
        <init-param>
            <param-name>development</param-name>
            <param-value>true</param-value>
        </init-param>

改良睾丸间期
0
发展
真的

。希望这能有所帮助。

JspServlet的默认行为是每次访问源JSP时检查它,如果它已经更改,则重新编译。此设置在99%的情况下都能正常工作,包括开发和生产。在非常高的负载下,禁用它可能会加快速度,但我还没有看到这是必要的


如果您看到JSP最终被重新编译的行为,那么您必须将Tomcat配置为这种行为。您是否已启用后台重新编译标志(如详细信息所示)?此设置可能会隐式禁用访问时自动重新编译。

JspServlet的默认行为是每次访问源JSP时检查它,如果它已更改,则重新编译。此设置在99%的情况下都能正常工作,包括开发和生产。在非常高的负载下,禁用它可能会加快速度,但我还没有看到这是必要的


如果您看到JSP最终被重新编译的行为,那么您必须将Tomcat配置为这种行为。您是否已启用后台重新编译标志(如详细信息所示)?此设置可能会隐式禁用自动访问重新编译。

我无法重新启动web应用程序。这样做将破坏状态并中断活动会话。将modificationTestInterval更改为0将使我与现在处于同一条船上。。。我该如何通过编程实现这一点?@Eddie。如果通过编程或手动修改web.xml,将导致容器重新启动。@Eddie。您可以手动修改JSP,而不会导致容器重新启动。@Igor Zelaya:是否可以通过编程方式修改Tomcat web.xml来更改“development”参数,但不会导致容器重新启动?我无法重新启动web应用程序。这样做将破坏状态并中断活动会话。将modificationTestInterval更改为0将使我与现在处于同一条船上。。。我该如何通过编程实现这一点?@Eddie。如果通过编程或手动修改web.xml,将导致容器重新启动。@Eddie。您可以手动修改JSP,而不会导致容器重新启动。@Igor Zelaya:是否可以通过编程方式修改Tomcat web.xml,从而更改“development”参数,但不会导致容器重新启动?