之前,我知道tomcat可以直接解析shtml文件,在浏览器中显示效果来,后来由于需求发生改变,比如说 在做静态化生成的时候一个网站的头部和底部都是一样的,如果每个页面都生成一次,显然很浪费时间,所有我们可以把 这个共同的头部 和底部挖出来单独生成,然后通过shtml嵌套显示,就可以了。可是怎么导入静态头部和底部呢??有好的标签吗??有 shtml中有include标签导入外部文件显示。

例如:<!--#include virtual="${ctx}/web/header.html"-->(这个不是注释,shtml导入标签就是这么写的)。

如果直接这样子使用,tomcat是无法解析的。还需要在tomcat中做两下简单的配置:

第一:在 tomcat/conf/context.xml 中加上 privileged="true" ,表示享有特权的,

第二:在 tomcat/conf/web.xml中 关于name=“ssi”的servlet 配置取消掉注释,包括该servlet的映射配置。

如下:

  1. <servlet>
  2. <servlet-name>ssi</servlet-name>
  3. <servlet-class>
  4. org.apache.catalina.ssi.SSIServlet
  5. </servlet-class>
  6. <init-param>
  7. <param-name>buffered</param-name>
  8. <param-value>1</param-value>
  9. </init-param>
  10. <init-param>
  11. <param-name>debug</param-name>
  12. <param-value>0</param-value>
  13. </init-param>
  14. <init-param>
  15. <param-name>expires</param-name>
  16. <param-value>666</param-value>
  17. </init-param>
  18. <init-param>
  19. <param-name>isVirtualWebappRelative</param-name>
  20. <param-value>0</param-value>
  21. </init-param>
  22. <!--- <span style="color:#FF0000;">这里需要手动添加</span> -->
  23. <init-param>
  24. <param-name>inputEncoding</param-name>
  25. <param-value>UTF-8</param-value>
  26. </init-param>
  27. <init-param>
  28. <param-name>outputEncoding</param-name>
  29. <param-value>UTF-8</param-value>
  30. </init-param>
  31. <load-on-startup>4</load-on-startup>
  32. </servlet>
  33. <servlet-mapping>
  34. <servlet-name>ssi</servlet-name>
  35. <url-pattern>*.shtml</url-pattern>
  36. </servlet-mapping>

备注:红色部分需要手动添加,不然在显示的页面中会乱码。

基本上这样子配置之后tomcat就回帮你解析shtml的include标签了。感觉还是蛮方便,蛮强大的。

另外:

导入的文件可以不是完整的页面,就是说可以不用包含html标签,直接写几个div什么的也是可以的。

如果在页面上报错:    [an error occurred while processing this directive]  是因为导入的文件不存在引发的。

配置tomcat让shtml嵌套文件显示的更多相关文章

  1. 数据库存储图片相对路径使用问题,配置tomcat的server.xml文件

    我想从前端读取路径的时候,必须输入相对路径+根路径,但是我数据库中存的相对路径 接下来讲解如何通过相对路径获得照片 首先我们需要在tomcat的server.xml文件中更改属性,eslipse可以直 ...

  2. (转)Linux服务器安装配置tomcat

    这里首先说明下,Linux下的Tomcat没有32位和64位的区分. tomcat是分windows版本与linux版本的,windows版本一般以exe或者zip格式:linux版本一般以tar.g ...

  3. 配置Tomcat的server.xml以适应web-content文件系统的位置改变

    刚才把写的一对jsp.html文件夹改变了位置,然后测试的时候出现了404 后来思考,应该去重新配置tomcat的server.xml文件,修改虚拟路径对应的文件系统路径,修改为当前对应的文件系统路径 ...

  4. 配置tomcat,实现域名访问项目

    首先,配置tomcat端口号为80,配置方法:配置tomcat,访问端口改为80 然后,配置访问项目时候,不用项目名,配置方法:配置tomcat,使访问项目时候无项目名 最后,配置tomcat的ser ...

  5. nginx+tomcat+二级域名静态文件分离支持mp4视频播放配置实例

    nginx+tomcat+二级域名静态文件分离支持mp4视频播放配置实例 二级域名配置 在/etc/nginx/conf.d/目录下配置二级域名同名的conf文件,路径改成对应的即可 statics. ...

  6. eclipse:eclipse for java EE环境下如何配置tomcat服务器,并让tomcat服务器显示在控制台上,将Web应用部署到tomcat中

    eclipse环境下如何配置tomcat 打开Eclipse,单击"Window"菜单,选择下方的"Preferences".  单击"Server& ...

  7. 成功配置TOMCAT的LOG4J日志系统,格式:HTML+每天以YYYY-MM-DD.LOG命名的日志文件

    关于log4j.properties文件在web项目中放的位置,找过很多,最后实践结果是: 一.web项目 二.放在src的目录里面,然后项目生成后会自动在\WEB-INF\classes文件里有份l ...

  8. Tomcat中server.xml文件的配置

    server.xml文件当中可配置如下信息: 1)配置端口号(如果是正式网站,要把8080改成80)<Connector executor="tomcatThreadPool" ...

  9. 【问题解决方案】单个文件夹嵌套时github仓库中最外层文件夹直接显示所有嵌套文件夹名的问题

    上传文件的时候遇到这样一个问题: 这么看着好像有什么问题,直觉不应该这么显示吧 折腾半天,从github新建了嵌套文件夹并同步到本地,然后从本地push了文件,结果依然显示是这样 好吧,那这个问题应该 ...

随机推荐

  1. 10 个优质的 Laravel 扩展推荐

    这里有 10+ 个用来搭建 Laravel 应用的包 为何会创建这个包的列表?因为我是一个「比较懒」的开发者,在脸书上是多个 Laravel 小组的成员.平日遇到最多的问题就是开发是需要用那些包.我很 ...

  2. 【洛谷】P4643 【模板】动态dp

    题解 在冬令营上听到冬眠的东西,现在都是板子了猫锟真的是好毒瘤啊(雾) (立个flag,我去thusc之前要把WC2018T1乱搞过去= =) 好的,我们可以参考猫锟的动态动态dp的课件,然后你发现你 ...

  3. MySQL 存储过程传参数实现where id in(1,2,3,...)示例

    一个MySQL 存储过程传参数的问题想实现例如筛选条件为:where id in(1,2,3,...),下面有个不错的示例,感兴趣的朋友可以参考下   正常写法:  ,,,,...); 当在写存储过程 ...

  4. 常见的mysql数据库sql语句的编写和运行结果

    省份城市试题#省份表    -> select * from province;+----+----------+| id | province |+----+----------+|  1 | ...

  5. CSUOJ 1901 赏赐 OR 灾难 单调栈

    Description 大G南征北战终于打下了大片土地成立了G国,大G在开国大典上传召帮助自己南征北战的三大开国元勋小A,小B,小C进殿,并要赏赐三人大量宝物以显示天恩浩荡.大G在征服其他国家的时候抢 ...

  6. C++运算符重载 模板友元 new delete ++ = +=

    今天的重载是基于C++ 类模板的,如果需要非类模板的重载的朋友可以把类模板拿掉,同样可以参考,谢谢. 一.类模板中的友元重载 本人喜好类声明与类成员实现分开写的代码风格,如若您喜欢将类成员函数的实现写 ...

  7. Python 递归删除非空目录(包括子目录以及文件)

    Python的OS模块自带rmdir和removedirs函数用于删除目录,但是两者都不能删除非空目录,以下代码定义了一个函数 remove_dir 用于删除非空目录. #作者官网 http://ww ...

  8. vue.js-过滤器 filters使用详细示例

    什么也不说了,直接上干货: 1.首先,获取后台数据到页面,并调用过滤器 在<script>中添加 onRefreshItems (currentPage, perPage) { if (t ...

  9. 【SQL】181. Employees Earning More Than Their Managers

    The Employee table holds all employees including their managers. Every employee has an Id, and there ...

  10. grunt自动化

    1.安装模块 npm install grunt -g npm install grunt-cli -g #! --save-dev 既会把模块安装到项目node_modules下,也会安装到依赖文件 ...