使用tomcat发布含有shtml文件的web程序

平常都是使用html或jsp,当导入含有shtml的一个web项目时,向平常一样使用Jetty运行,访问到shtml文件时,直接在浏览器上显示出了源码。

查询,使用tomcat发布,修改tomcat的一些配置可以正常访问shtml文件。

注意:在shtml文件中

<!--#include virtual="./include/header.shtml"-->表示的是导入,不是注释信息

发布的配置如下:

1、修改Tomcat的配置文件conf/context.xml,在标签<Content>中添加属性 privileged="true"。

2、修改Tomcat的配置文件conf/web.xml中servlet-name=ssi的servlet配置取消注释(默认被注释掉了)

    <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>666</param-value>
        </init-param>
        <init-param>
          <param-name>isVirtualWebappRelative</param-name>
          <param-value>false</param-value>
        </init-param>
         <!-- 下面两个init-param需要手动添加 -->
        <init-param>
        <param-name>inputEncoding</param-name>
        <param-value>UTF-8</param-value>
      </init-param>
      <init-param>
        <param-name>outputEncoding</param-name>
        <param-value>UTF-8</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发布项目,访问带有shtml的项目就不会直接出现源码了(对于在页面中使用<!--# -->引入的文件也能正常显示)。

 

posted @ 2017-07-21 10:17  理舞  阅读(307)  评论(0编辑  收藏  举报