Tomcat全局自定义配置400、404、500页面

x33g5p2x  于2022-02-12 转载在 其他  
字(1.6k)|赞(0)|评价(0)|浏览(645)
方式1:仅Tomcat8+才支持 - server.xml

Tomcat9及以上的ErrorReportValve类代码 - 自行反编译Tomcat8、Tomcat9此类区别

此方法只能在Tomcat9及以上才生效,因为Tomat8及以下在org.apache.catalina.valves.ErrorReportValve类内没有setProperty代码,故不能通过此类自定义页面

Tomcat目录/conf/server.xml == 下面两者皆可

  1. <!--共同点
  2. 1. ErrorReportValve 中的errorCode配置仅支持Tomcat8+版本
  3. 2. 400页面不进入webapps具体的项目目录、这很重要,即使你地址中有项目文件夹的名字,如下面400链接
  4. http://127.0.0.1:8080/docs/config/xxx?fol=c:\\iu
  5. 3. 500、404如果匹配到wenapps里面的项目目录,会进入到里面,故可以使用errorCode.404="/404.html",开头斜杠表示webapps下具体里面项目目录,如下面的404链接
  6. http://127.0.0.1:8080/docs/a 开头斜杠表示 Tomcat目录/webapps/docs目录
  7. http://127.0.0.1:8080/test 没有找到 开头斜杠则默认使用/webapps/ROOT目录
  8. 4. 不加斜杠表示:Tomcat目录
  9. -->
  10. <!--第一个 404页面需在每个webapps各项目里面添加404.html【放多份】-->
  11. <!--<Valve className="org.apache.catalina.valves.ErrorReportValve" showReport="false" showServerInfo="false" errorCode.400="webapps/404.html" errorCode.404="/404.html">
  12. </Valve> -->
  13. <!--第二个 404页面仅需在webapps下放个404.html页面即可【放一份】-->
  14. <Valve className="org.apache.catalina.valves.ErrorReportValve" showReport="false" showServerInfo="false" errorCode.400="webapps/400.html" errorCode.404="webapps/404.html">
  15. </Valve>

方式2:Tomcat8不支持全局配置400 - web.xml

Tomcat目录/conf/web.xml

  1. <error-page>
  2. <error-code>404</error-code> <!--错误码-->
  3. <location>/404.html</location> <!--相对webapps/xx目录-->
  4. </error-page>
  5. <!--
  6. 1. http://127.0.0.1:8080/examples/a 404页面
  7. 404访问路径:webapps/examples/404.html
  8. 2. http://127.0.0.1:8080/test 404页面
  9. 无webapps/test目录则访问
  10. webapps/ROOT/404.html
  11. -->

相关文章