文章目錄
-
-
-
- 方式1:僅Tomcat8+才支援 - server.xml
- 方式2:Tomcat8不支援全局配置400 - web.xml
-
-
方式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
-->