平常都是使用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的项目就不会直接出现源码了(对于在页面中使用<!--# -->引入的文件也能正常显示)。