你们中有人在JBoss中启用了SSI(ServerSide Includes)吗?我猜它应该不难,因为它是基于Tomcat实例构建的。

最佳答案

Tomcat已在catalina.jar中包含org.apache.catalina.ssi.SSIServlet,因此只需声明servlet并将其附加到映射URL,只需在应用程序web.xml中进行设置即可。

<servlet>
    <servlet-name>ssi</servlet-name>
    <servlet-class>
        org.apache.catalina.ssi.SSIServlet
    </servlet-class>
    <init-param>
        <param-name>buffered</param-name>
        <param-value>1</param-value>
    </init-param>
    <init-param>
        <param-name>debug</param-name>
        <param-value>0</param-value>
    </init-param>
    <init-param>
        <param-name>expires</param-name>
        <param-value>60</param-value>
    </init-param>
    <init-param>
        <param-name>isVirtualWebappRelative</param-name>
        <param-value>1</param-value>
    </init-param>
    <load-on-startup>4</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>ssi</servlet-name>
    <url-pattern>*.shtml</url-pattern>
</servlet-mapping>

我放置了所有参数,您可以在Tomcat SSI参考中看到它们的定义。

就像文档所说的那样,SSI可以绕过安全策略,因此必须对其具有特权,可以通过更改deploy文件夹内jboss-web.deploy中的context.xml来实现。只需在root元素上添加privileged =“true”。
<Context ... privileged="true">

Servlet只是充当与其映射URL匹配的文件的代理。

09-15 18:24