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

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

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

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

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

<!--共同点
1. ErrorReportValve 中的errorCode配置仅支持Tomcat8+版本

2. 400页面不进入webapps具体的项目目录、这很重要,即使你地址中有项目文件夹的名字,如下面400链接
        http://127.0.0.1:8080/docs/config/xxx?fol=c:\\iu

3. 500、404如果匹配到wenapps里面的项目目录,会进入到里面,故可以使用errorCode.404="/404.html",开头斜杠表示webapps下具体里面项目目录,如下面的404链接
      http://127.0.0.1:8080/docs/a  开头斜杠表示 Tomcat目录/webapps/docs目录
      http://127.0.0.1:8080/test 没有找到 开头斜杠则默认使用/webapps/ROOT目录

4. 不加斜杠表示:Tomcat目录
-->

<!--第一个  404页面需在每个webapps各项目里面添加404.html【放多份】-->
<!--<Valve className="org.apache.catalina.valves.ErrorReportValve" showReport="false" showServerInfo="false" errorCode.400="webapps/404.html" errorCode.404="/404.html">
		</Valve>		-->
        
<!--第二个  404页面仅需在webapps下放个404.html页面即可【放一份】-->        
        <Valve className="org.apache.catalina.valves.ErrorReportValve" showReport="false" showServerInfo="false" errorCode.400="webapps/400.html" errorCode.404="webapps/404.html">
		</Valve>

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

Tomcat目录/conf/web.xml

<error-page>
		<error-code>404</error-code> <!--错误码-->
		<location>/404.html</location> <!--相对webapps/xx目录-->
	</error-page>
    
<!--
1. http://127.0.0.1:8080/examples/a  404页面
404访问路径:webapps/examples/404.html

2. http://127.0.0.1:8080/test  404页面
无webapps/test目录则访问
webapps/ROOT/404.html
-->

相关文章