3

你们中有人在 JBoss 中启用了 SSI(ServerSide Includes)吗?我想这应该不难,因为它是建立在 Tomcat 实例之上的。

4

1 回答 1

3

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 可以绕过安全策略,因此它必须是特权的,这样做会更改部署文件夹内jboss -web.deploy中的context.xml 。只需将privileged="true"添加到根元素即可。

<Context ... privileged="true">

servlet 将充当与其映射的 URL 匹配的文件的代理。

于 2009-05-29T17:56:09.867 回答